Maven – 发布JAR包到Maven远程中央仓库(二)

作者: adm 分类: java 发布时间: 2022-10-26

二、配置Maven(pom.xml)
接下来就是重头戏了,pom.xml是一个maven项目的重点配置,一个项目的所有配置都可以由这个文件来描述,文件中的所有配置都有默认值,也就是说所有的配置都是可选配置,但是为了把构件发布到中央仓库,我们必须配置一些关键信息,否则再发布时是不会通过了。
在工程的pom.xml文件中,引入Sonatype官方的一个通用配置oss-parent,这样做的好处是很多pom.xml的发布配置不需要自己配置了: org.sonatype.oss
oss-parent
7
并增加Licenses、SCM、Developers信息: The Apache Software License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0.txt
repo



Lux Sun
28554482@qq.com
Lux Sun
https://github.com/LuxSun


https://github.com/LuxSun/requestjson
https://github.com/LuxSun/requestjson.git

修改maven配置文件setting.xml,在servers中增加server配置。


sonatype-nexus-snapshots
Sonatype 账号 Sonatype 密码


sonatype-nexus-staging
Sonatype 账号 Sonatype 密码


根据官方指南,这里需要4个插件,
maven-source-plugin 用来生成Source Jar文件
maven-javadoc-plugin 用来生成 javadoc 文档
maven-gpg-plugin 用来对工程文件进行自动签名
nexus-staging-maven-plugin 用来将工程发布到中央仓库
另外注意生成javadoc文档时需要指定关闭doclint,不然可能因为使用了不规范的javadoc注解而导致失败,完整配置如下。
完整版


4.0.0

com.luxsuen
requestjson
1.0.1 jar

requestjson
RequestJson
https://github.com/LuxSun/requestjson

4.3.2.RELEASE UTF-8 UTF-8 UTF-8 The Apache Software License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0.txt
repo



Lux Sun
28554482@qq.com
Lux Sun
https://github.com/LuxSun


https://github.com/LuxSun/requestjson
https://github.com/LuxSun/requestjson.git



ossrh
oss Snapshots Repository
https://oss.sonatype.org/content/repositories/snapshots


ossrh
oss Staging Repository
https://oss.sonatype.org/service/local/staging/deploy/maven2/

org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
1.8
org.apache.maven.plugins
maven-jar-plugin
3.0.2


default-jar package
jar





**/spring/
**/com/luxsuen/requestjson/entity/
**/com/luxsuen/requestjson/web/
**/META-INF/*.kotlin_module

release
org.apache.maven.plugins
maven-source-plugin
2.2.1


attach-sources

jar-no-fork





**/spring/
**/com/luxsuen/requestjson/entity/
**/com/luxsuen/requestjson/web/
**/META-INF/*.kotlin_module

org.apache.maven.plugins
maven-javadoc-plugin
2.9.1


attach-javadocs

jar




com.luxsuen.requestjson.entity:com.luxsuen.requestjson.web
org.apache.maven.plugins
maven-gpg-plugin
1.5


sign-artifacts verify
sign


org.sonatype.plugins
nexus-staging-maven-plugin
1.6.7
true

ossrh
https://oss.sonatype.org/
true
注意1:以上 pom.xml 必须包括:name、description、url、licenses、developers、scm 等基本信息,此外,使用了 Maven 的 profile 功能,只有在 release 的时候,创建源码包、创建文档包、使用 GPG 进行数字签名。此外,snapshotRepository 与 repository 中的 id 一定要与 setting.xml 中 server 的 id 保持一致。
注意2:这里在 nexus-staging-maven-plugin 插件里开启了自动 Release。也可以关掉,然后登录构件仓库 https://oss.sonatype.org 手动去 close 然后 relseae。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!