使用Github Packages作为自己的Maven仓库

2,611 阅读2分钟

Maven私服

Maven是笔者在开发中用的最多的仓库, 已经不记得和pom文件做过多少次战斗了

公开仓库里有很多优秀的项目, 但难免会有较为特殊的需求, 它除了需求过分之外, 还有很多module, 甚至同事的项目都进行了引用

传统的jar包方式显示是落后且不优雅的

nexus3最低的2G内存启动限制干掉了我的腾讯云小服务器

网上千篇一律的使用Github Repository作为Maven仓库的教程, 实际操作复杂不说, 在我进行版本更新时竟然还出现了问题

只有Github Packages冲我伸出了援助之手

搭建

Github Packages

在使用Github Packages之前, 我们需要进行如下三步准备工作:

  1. 拥有一个Github账号
  2. 生成一个用于访问的token
  3. 创建一个用于保存的仓库, 我习惯命名为: maven-repo

上面的步骤均可在浏览器进行, 且网上教程很多, 不再赘述

修改Maven配置

配置文件是:${MavenHome}/conf/settings.xml

我们需要修改里面的和

<servers>
    <server>
        <id>服务id, 我使用的是: github</id>
        <username>你的Github账号名称</username>
        <password>你的Github访问token</password>
    </server>
</servers>
<profiles>
    <profile>
        <id>github</id>
        <repositories>
            <repository>
                <id>central</id>
                <url>https://repo1.maven.org/maven2</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
			</repository>
			<repository>
                <id>服务id, 和server标签中保持一致</id>
                <name>自定义, 我写的是: GitHub 账号名称 Apache Maven Packages</name>
                <url>https://maven.pkg.github.com/Github账号名称/用于保存的仓库名称</url>
            </repository>
        </repositories>
    </profile>
</profiles>

如果你使用的是idea自带的maven, 可以只写一个settings.xml, 在配置里进行覆盖即可

修改pom文件

maven仓库准备就绪, 接下来只要按照正常的流程, 设置打包发布即可:

<distributionManagement>  
    <repository>    
        <id>服务id</id>    
        <name>GitHub 账号名称 Apache Maven Packages</name>
        <url>https://maven.pkg.github.com/Github账号名称/用于保存的仓库名称</url>  
    </repository>
</distributionManagement>

标签中的内容和我们上一步maven中的配置一模一样

接下来只需要运行打包命令, 我们的私有依赖就发布成功啦

注意有坑

Github Packages的私服, 需要在maven中配置Github的token认证才能使用, 这对于非Github团队的工作配合会十分困难, 这种情况下还是推荐使用私服!