如何使用Maven只签三个jar子并将它们推送到Maven Central?

更新:见后续问题


我有一个Java库,其构建过程完全用Ant编写。 项目的沙箱(源目录,我在其中编辑代码)是

R:\jeffy\programming\sandbox\xbnjava\ 

它的构建(输出)目录是

 R:\jeffy\programming\build\xbnjava-0.1.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 所要求的(向上滚动一点就可以看到它)。

  2. 检查版本到GitHub并将构建目录上传到我的Web服务器。 我也完成了这一步。

  3. mvn deploy唯一需要做的就是签下三个jar子并将它们推送到Maven Central。 这是我存在的当前祸根。


这是我到目前为止采取的步骤:我有

  1. 在sonatype 设置我的项目 ,
  2. 使用gpg4win 创建我的公钥 (关于sonatype的相关文档 )
  3. 下载并安装Maven
  4. 设置我希望是正确的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 ,因为我的每个项目都使用它。)

  1. 至少设置我的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文件而创建的。