Answers:
<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父POM。
maven-source-plugin:jar
package
默认情况下会附加到该阶段,因此您可以离开<phase>verify</phase>
并完成相同的操作。此外,我不确定您为什么还要附加此代码以进行验证,因为该阶段旨在“打包项目并运行集成测试”。
只是添加一个不需要您配置插件配置的替代方法:
mvn -DperformRelease=true [goals]
Dan提到的文章还提到了另一种方法,该方法无需修改pom就可以使用,并且不会很快消失:
mvn clean javadoc:jar来源:jar安装
可以与Maven 3+以及...一起使用
mvn clean javadoc:jar来源:jar部署
我已经从Jenkins部署到Nexus的系统进行了测试。
这种方法很好,因为我只需要修改一些詹金斯的工作,而无需弄乱我的pom。
package
:mvn clean javadoc:jar source:jar package