Maven 自定义仓库
当自己开发一个工具包,然后另一个项目要引用时,因此需要将 jar 包放到可访问的公网上:
-
Maven 官方 repo,如使用 Sonatype OSSRH,但其注册复杂,此次不进行介绍;
-
第三方公共仓库,如 JitPack, Github/Gitee等,后面进行介绍。
JitPack 作为Maven仓库
只能根据项目地址自动生成 group id 和 artificat id,不会根据pom.xml中定义的生成。
构建 jar 包
根据 Tag / Release 来:
- 输入项目地址,点击'Look up' 会自动构建;
Log
查看构建历史
使用Jar包
pom.xml 中配置
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.gitee.cs-open-project</groupId>
<artifactId>annotations-for-readme</artifactId>
<version>v1.0</version>
</dependency>
Github 项目作为Maven仓库
Gitee 也可以作为 Maven 仓库,但是第二步"上传 Deploy 输出",无法通过maven插件执行,需要手动上传。
指定构建Deploy的输出位置
<plugin>
<!--用于将构建产物(通常是JAR文件、WAR文件等)部署到输出位置-->
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repo</altDeploymentRepository>
</configuration>
</plugin>
上传 Deploy 输出
m2的settings.xml
配置 server
<servers>
<server>
<id>xliuqq-github</id><!-- 自定义的id。记住此id, 后续发布jar包时要使用 -->
<!-- token 需要具备 repo 的读写,和 user email 权限-->
<password>your-token</password>
</server>
</servers>
待发布的工程的 pom.xml 中配置,将包发布到 github 的仓库中
<!--用于发布到Github 指定仓库-->
<plugin>
<groupId>com.github.github</groupId>
<artifactId>site-maven-plugin</artifactId>
<version>0.12</version>
<executions>
<execution>
<goals>
<goal>site</goal>
</goals>
<phase>deploy</phase>
<configuration>
<!--服务名(settings.xml中配置内容,上述配置的server的id)-->
<server>xliuqq-github</server>
<!-- 提交消息(commit message)-->
<message>Maven artifacts for [${project.artifactId}-${project.version}]</message>
<!-- 上传网站的位置(远程仓库名) -->
<repositoryName>maven-repository</repositoryName>
<!--组织或用户名-->
<repositoryOwner>xliuqq</repositoryOwner>
<!-- 使用合并或覆盖内容 -->
<merge>true</merge>
<!--分支(固定写法:refs/heads/ + 你的分组)-->
<branch>refs/heads/main</branch>
<!--源文件地址,跟上一步的deploy输出位置对应-->
<outputDirectory>${project.build.directory}/mvn-repo</outputDirectory>
<!-- 包含outputDirectory标签内填的文件夹中的所有内容 -->
<includes>
<include>**/*</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
使用 jar
pom.xml
<dependencies>
<dependency>
<groupId>org.xliu.cs.projects</groupId>
<artifactId>annotations-for-doc</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>maven-github</id> <!--此id需要与setting.xml中的配置,但不用跟第一步中上传的server名一致-->
<!-- github 访问路径 -->
<url>http://raw.github.com/xliuqq/maven-repository/main</url>
<!-- 如果 github 无法访问(或者配置代理仍出现`Unknown host 请求的名称有效,但是找不到请求的类型的数据`问题,可通过gitee同步gihub项目,然后使用 gitee 地址 -->
<!-- <url>https://gitee.com/luckyQQQ/maven-repository/raw/main</url> -->
</repository>
</repositories>
如果配置了 mirror *,则需要忽略这个 repository-id。