我想用快照部署源代码和javadoc。这意味着我想自动化以下命令:
mvn clean source:jar javadoc:jar deploy
执行:
mvn clean deploy
我不希望在install
阶段(即本地版本)执行javadoc / sources生成。
我知道source / javadoc插件可以与release
插件的执行同步,但我无法弄清楚如何将它连接到快照发布。
答案 0 :(得分:77)
<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's OSS parent POM。
答案 1 :(得分:46)
只是添加一个不需要你使用插件配置的替代方案:
mvn -DperformRelease=true [goals]
的mcbeelen
答案 2 :(得分:34)
Dan提到的文章还提到了另一种方法,它可以在不修改poms的情况下工作,并且不会很快消失:
mvn clean javadoc:jar source:jar install
与Maven 3+配合使用,以及......
mvn clean javadoc:jar source:jar deploy
我从Jenkins部署到Nexus进行了测试。
这种做法很好,因为我只需要修改一些Jenkins的工作,而不需要弄乱我的poms。