如何使用Maven只签三个jar子并将它们推送到Maven Central?
更新:见后续问题
我有一个Java库,其构建过程完全用Ant编写。 项目的沙箱(源目录,我在其中编辑代码)是
R:\jeffy\programming\sandbox\xbnjava\
它的构建(输出)目录是
R:\jeffy\programming\build\xbnjava-0.1.1\
这就是我的目标:
-
ant cleanpublish
:从头开始构建项目,包括创建这三个jar-
mylibrary-0.1.1.jar
-
mylibrary-0.1.1-sources.jar
-
mylibrary-0.1.1-javadoc.jar
放入的
R:\jeffy\programming\build\xbnjava-0.1.1\download
这部分完成并运作良好。 这三个jar子是Maven Central 所要求的(向上滚动一点就可以看到它)。
-
-
检查版本到GitHub并将构建目录上传到我的Web服务器。 我也完成了这一步。
-
mvn deploy
: 唯一需要做的就是签下三个jar子并将它们推送到Maven Central。 这是我存在的当前祸根。
这是我到目前为止采取的步骤:我有
- 在sonatype 设置我的项目 ,
- 使用gpg4win 创建我的公钥 (关于sonatype的相关文档 )
- 下载并安装Maven
-
设置我希望是正确的
settings.xml
:sonatype-nexus-snapshots MY_SONATYPE_USERNAME MY_SONATYPE_PASSWORD sonatype-nexus-staging MY_SONATYPE_USERNAME MY_SONATYPE_PASSWORD
(此文件存储在R:\jeffy\programming\sandbox\settings.xml
,因为我的每个项目都使用它。)
- 至少设置我的
pom.xml
的开头,基于ez-vcard
中的那个 (在作者的有用博客文章中引用)。 我还使用Maven 对POM的介绍作为指导。
这些部分在顶部,我相信我理解:
4.0.0 com.github.xbn xbnjava jar 0.1.2-SNAPSHOT XBN-Java https://github.com/aliteralmind/xbnjava 2014 Jeff Epstein XBN-Java is a collection of generically-useful backend (server side, non-GUI) programming utilities, featuring RegexReplacer and FilteredLineIterator. XBN-Java is the foundation of Codelet (http://codelet.aliteralmind.com). org.sonatype.oss oss-parent 7 Lesser General Public License (LGPL) version 3.0 https://www.gnu.org/licenses/lgpl-3.0.txt Apache Software License (ASL) version 2.0 http://www.apache.org/licenses/LICENSE-2.0.txt Jeff Epstein aliteralmind-github@yahoo.com Lead Developer GitHub Issue Tracker https://github.com/aliteralmind/xbnjava/issues scm:git:git@github.com:aliteralmind/xbnjava.git scm:git:git@github.com:aliteralmind/xbnjava.git scm:git:git@github.com:aliteralmind/xbnjava.git 1.7
剩下的,我不太确定:
release-sign-artifacts release true org.apache.maven.plugins maven-gpg-plugin 1.4 sign-artifacts package sign
我需要做什么来完成POM,其路径是
R:\jeffy\programming\sandbox\xbnjava\pom.xml
所以它签署并推送这三个jar文件,如位于
R:\jeffy\programming\build\xbnjava-0.1.1\download\
到Maven Central?
我真的很感激有关从哪里开始的建议。 我现在已经三天没有游泳,只有Maven文件三天了,我迷失了,感到很沮丧。 这是我过去几年与Maven的第三次尝试,而且每次都非常糟糕。
(我最初尝试使用Ant任务来满足Maven要求 ,但我决定完全将我的Ant构建和Maven签署-jars-and-push-to-Maven-Central部分分开。这是为了学习新东西,但是也因为看起来在Ant中实现Maven不如纯Maven那么标准化。)
感谢你们对我的帮助。
如果要在Maven之外构建工件,则需要在.pom文件中引用它们
首先,将项目的packaging
设置为pom
这样Maven就不会尝试编译任何东西。
然后使用build-helper-maven-plugin
将工件文件附加到项目中。 这是一个例子:
org.codehaus.mojo build-helper-maven-plugin 1.8 attach-artifacts package attach-artifact build/xbnjava-0.1.1/download/mylibrary-0.1.1.jar jar build/xbnjava-0.1.1/download/mylibrary-0.1.1-javadoc.jar jar javadoc build/xbnjava-0.1.1/download/mylibrary-0.1.1-sources.jar jar sources
最后,将distributionManagement
部分添加到此处指定的.pom文件中。
您可以在github上参考我自己的Maven项目设置,该设置是为了在Maven中心上传手动构建的.jar文件而创建的。