web-dev-qa-db-ja.com

ソースとJavaDocでSNAPSHOTをデプロイする方法は?

スナップショットでソースとjavadocsをデプロイしたい。これは、次のコマンドを自動化することを意味します。

mvn clean source:jar javadoc:jar deploy

実行するだけ:

mvn clean deploy

installフェーズ(つまり、ローカルビルド)でjavadoc/sources生成を実行したくありません。

Source/javadocプラグインはreleaseプラグインの実行と同期できることは知っていますが、スナップショットリリースに接続する方法がわかりません。

90
Henryk Konsek
<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 を参照してください。

76
sfussenegger

プラグイン設定をいじる必要のない代替を追加するだけです:

mvn -DperformRelease=true [goals]

クレジットは http://sea36.blogspot.com/2009/02/attaching-javadocs-and-sources-to-maven.html?showComment=1314177874102#c6853460758692768998 からmcbeelenに送られます

46
Dan

Danが言及した記事には、pomsを変更せずに動作し、すぐに消えない別のアプローチも記載されています。

mvn clean javadoc:jar source:jarインストール

とともに、Maven 3+で正常に動作します...

mvn clean javadoc:jar source:jar deploy

Nexusに展開するJenkinsからテストしたもの。

Jenkinsのいくつかのジョブを変更するだけで済み、Pomをいじる必要がないため、このアプローチは素晴らしいものでした。

39
HDave