nexus-staging-maven-plugin 踩坑

本文介绍nexus-staging-maven-plugin插件的作用及使用方法,帮助开发者将Java开源项目部署到Maven中央仓库。文章详细解释了如何配置插件以避免不需要的模块被上传,并提供了关键配置示例。
这货是啥

nexus-staging-maven-plugin是一个nexus用来自动控制流程的客户端插件。如果你想分享自己的java开源项目到maven中央仓库,就有可能需要这个插件。

问题是啥

重现问题需要下面几步,

第一步:

需要先在sonatype上发起一个新开源项目的issue等待审核通过。 第二步:

修改自己的pom.xml,让他符合maven中央仓库的检查规则。 几个重要的规则是开发者信息

maven-javadoc-plugin //打包javadoc
maven-source-plugin //打包源码
maven-gpg-plugin //gpg签名验证
复制代码

签名需要自己生成,详细教程在deploy-to-maven-central-repository

第四步:

nexus本身有一套发布jar的流程,下面这个插件可以是nexus流程处理的客户端.

<plugin>
    <groupId>org.sonatype.plugins</groupId>
    <artifactId>nexus-staging-maven-plugin</artifactId>
    <version>1.6.7</version>
    <extensions>true</extensions>
    <configuration>
        <serverId>ossrh</serverId>
        <nexusUrl>https://oss.sonatype.org/</nexusUrl>
        <autoReleaseAfterClose>true</autoReleaseAfterClose>
    </configuration>
</plugin>
复制代码

好的,请记住这个插件,当你执行mvn deploy的时候,它会自己上传当前maven工程下的所有模块到nexus. 比如说xxx-service-api的实现,xxx-web.

怎么解决

如果想把某个模块忽略,需要增加配置

<plugin>
	<groupId>org.sonatype.plugins</groupId>
	<artifactId>nexus-staging-maven-plugin</artifactId>
	<configuration>
		<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
	</configuration>
</plugin>
复制代码

end.

懒人版

在用了nexus-staging-maven-plugin插件之后,下面的配置不能避免模块被发布到nexus

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-deploy-plugin</artifactId>
	<configuration>
		<skip>true</skip>
	</configuration>
</plugin>
复制代码

还需要增加

<plugin>
	<groupId>org.sonatype.plugins</groupId>
	<artifactId>nexus-staging-maven-plugin</artifactId>
	<configuration>
		<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>
	</configuration>
</plugin>
复制代码

转载于:https://juejin.im/post/5a7ed1e05188257a5e573edd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值