我希望能够在我的快照中部署源代码和Java文档。这意味着我想要自动化以下命令:
mvn clean source:jar javadoc:jar deploy
仅需执行:
mvn clean deploy
我不想在“install”阶段(即本地构建)执行javadoc/sources生成。
我知道源代码/ javadoc插件可以与“release”插件的执行同步,但我无法弄清楚如何将其连接到快照发布。
我希望能够在我的快照中部署源代码和Java文档。这意味着我想要自动化以下命令:
mvn clean source:jar javadoc:jar deploy
仅需执行:
mvn clean deploy
我不想在“install”阶段(即本地构建)执行javadoc/sources生成。
我知道源代码/ javadoc插件可以与“release”插件的执行同步,但我无法弄清楚如何将其连接到快照发布。
<build>
<plugins>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>deploy</phase>
<goals><goal>jar-no-fork</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>deploy</phase>
<goals><goal>jar</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- explicitly define maven-deploy-plugin after other to force exec order -->
<artifactId>maven-deploy-plugin</artifactId>
<executions>
<execution>
<id>deploy</id>
<phase>deploy</phase>
<goals><goal>deploy</goal></goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
请参考Sonatype的OSS Parent POM,这里有一个完整的例子。
在Maven 3+版本中可以正常工作并且配合以下命令也可以使用:mvn clean javadoc:jar source:jar install
我已经测试过Jenkins部署到Nexus使用这种方法非常好用,因为我只需要修改一些Jenkins任务而不需要修改我的POM文件。mvn clean javadoc:jar source:jar deploy
mvn clean javadoc:jar source:jar package
。 - ecoe我来提供一个不需要修改插件配置的替代方案:
mvn -DperformRelease=true [goals]
maven-source-plugin:jar
默认附加到package
阶段,因此您可以省略<phase> verify </phase>
并实现相同的效果。另外,我不确定为什么您要将它附加到验证阶段,因为该阶段旨在“打包项目并运行集成测试”。 - matt b