スナップショットでソースとjavadocsをデプロイしたい。これは、次のコマンドを自動化することを意味します。
mvn clean source:jar javadoc:jar deploy
実行するだけ:
mvn clean deploy
install
フェーズ(つまり、ローカルビルド)でjavadoc/sources生成を実行したくありません。
Source/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親POM を参照してください。
プラグイン設定をいじる必要のない代替を追加するだけです:
mvn -DperformRelease=true [goals]
クレジットは http://sea36.blogspot.com/2009/02/attaching-javadocs-and-sources-to-maven.html?showComment=1314177874102#c6853460758692768998 からmcbeelenに送られます
Danが言及した記事には、pomsを変更せずに動作し、すぐに消えない別のアプローチも記載されています。
mvn clean javadoc:jar source:jarインストール
とともに、Maven 3+で正常に動作します...
mvn clean javadoc:jar source:jar deploy
Nexusに展開するJenkinsからテストしたもの。
Jenkinsのいくつかのジョブを変更するだけで済み、Pomをいじる必要がないため、このアプローチは素晴らしいものでした。