99

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

mvn clean source:jar javadoc:jar deploy

実行するだけです:

mvn clean deploy

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

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

4

3 に答える 3

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

于 2011-01-18T15:13:51.440 に答える
57

Dan が参照した記事では、pom を変更せずに機能し、すぐになくなることはない別のアプローチについても言及しています。

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

これはMaven 3+でうまく動作し、...

mvn clean javadoc:jar source:jar deploy

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

Jenkins のジョブをいくつか変更するだけで済み、pom をいじる必要がなかったので、このアプローチは良かったです。

于 2016-06-13T20:37:55.170 に答える
49

プラグイン構成をいじる必要のない代替手段を追加するだけです:

mvn -DperformRelease=true [goals]

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

于 2012-01-26T15:34:13.723 に答える