本文最后更新于:2020年12月30日 凌晨
GitHub 示例
场景
吾辈在日常工具中也有一些公共的代码库,一直想分离成单独的类库却没有机会,看到使用 github 就能部署 maven 仓库就尝试了一下。
这里吐槽一下 maven 中央仓库的发布流程,不知道为什么不能像 npm 一样一个简单的命令就能发布多好!
创建一个 maven 项目上传到 github
这是初始的 pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>com.rxliuli</groupId> <artifactId>maven-repository-example</artifactId> <version>1.0-SNAPSHOT</version> </project>
|
添加一个忽略配置 .gitignore 就可以上传到 GitHub 了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| target/ pom.xml.tag pom.xml.releaseBackup pom.xml.versionsBackup pom.xml.next release.properties dependency-reduced-pom.xml buildNumber.properties .mvn/timing.properties .mvn/wrapper/maven-wrapper.jar
# 忽略 IDEA 配置文件 *.iml .idea/ rebel.xml
|
修改 maven-deploy-plugin
插件
主要是设置部署目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <build> <plugins> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.1</version> <configuration> <altDeploymentRepository> internal.repo::default::file://${project.build.directory}/mvn-repo </altDeploymentRepository> </configuration> </plugin> </plugins> </build>
|
在 settings.xml 中添加 github 用户信息
找到 maven 用户配置文件,默认位置在 ~/.m2/settings.xml。如果不存在,则从 maven 安装目录复制一份过来,具体位置在 MAVEN_HOME/conf/settings.xml。
1 2 3 4 5 6 7 8 9 10 11 12
| <servers> <server> <id>github</id> <username>rxliuli</username> <password>123456</password> </server> </servers>
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <properties> <github.global.server>github</github.global.server> </properties>
<build> <plugins> <plugin> <groupId>com.github.github</groupId> <artifactId>site-maven-plugin</artifactId>
<version>0.12</version> <configuration> <message>Maven artifacts for ${project.version}</message> <noJekyll>true</noJekyll> <outputDirectory>${project.build.directory}/mvn-repo </outputDirectory> <branch>refs/heads/mvn-repo</branch> <includes> <include>**/*</include> </includes> <repositoryName>maven-repository-example</repositoryName> <repositoryOwner>rxliuli</repositoryOwner> </configuration> <executions> <execution> <goals> <goal>site</goal> </goals> <phase>deploy</phase> </execution> </executions> </plugin> </plugins> </build>
|
进行部署
使用命令进行部署
查看 github 项目库,可以看到已经自动创建了一个分支 mvn-repo
并存放了部署后的文件。
使用
添加仓库地址
1 2 3 4 5 6 7 8 9
| <repositories> <repository> <id>maven-repository-example</id> <url> https://raw.githubusercontent.com/rxliuli/maven-repository-example/mvn-repo/repository </url> </repository> </repositories>
|
就像其他 maven 仓库一样,我们知道 groupId
, artifactId
与 version
,自然可以直接使用啦
1 2 3 4 5
| <dependency> <groupId>com.rxliuli</groupId> <artifactId>maven-repository-example</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
|
注: 这种使用 github 部署的 maven 仓库,在 maven 中央仓库 中并不能搜索到的哦