maven-リリース・プラグインを使用してアセンブリのパッケージを展開します
-
19-09-2019 - |
質問
私たちは何をするハドソンとのmaven-リリース・プラグインを使用しますリリースビルド。今、私は一緒にすべての必要なコンポーネントを置き、組立を含むプロジェクトを持っていますその後、目的のディレクトリ構造と.tar.gzのパッケージにパッケージ化します。
目標を行うが、唯一の標準的なもの(ソース、javadocは、POM)が配備されている。今私はリリース時に、私たちのMavenリポジトリにこのパッケージを展開するリリース・プラグインを取得しようとしています。
私はすでにMavenのパッケージ相に組み立て目標をバインドしました、そして.tar.gzファイルはリリース時に建てる取得しますが、リポジトリにアップロードされません。任意のヒントは、私がここで間違って何をやってる?
ここでは、アセンブリのプラグイン構成である。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/distribution.xml</descriptor>
</descriptors>
<finalName>${pom.artifactId}-${pom.version}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<tarLongFileMode>warn</tarLongFileMode>
</configuration>
<executions>
<execution>
<id>dist-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
私はリリースを構築するために実行したコマンドがある
mvn release:prepare release:perform release:clean
解決
一方で、私は私が望んでやっての2つの方法を見つけます。
のmaven-ビルドヘルパープラグインが配備されるべき成果物のリストにエントリを追加することができます:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>attach-distribution</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>target/${pom.artifactId}-${pom.version}.tar.gz</file>
<type>tar.gz</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
他はそれを取得するのと同じくらい簡単ですとMavenユーザのメーリングリスト上の誰かがこれを指摘しました。シンプルな使用アセンブリ:代わりにasssemblyの単一の目標:アセンブリ。この方法で生成されたアーティファクトは、展開段階中にリポジトリにアップロードされます。
<execution>
<id>dist-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal> <!-- that's all :) -->
</goals>
</execution>
他のヒント
ファイルを展開すると、リリースプラグインが、デプロイプラグインの(リリース自体がどこかのものを配備ものではありませんが、リリース時に呼び出されるプラグイン展開を構成することができます)の一部ではありません。
通常、デプロイプラグインは、リモートリポジトリに、すべての成果物が配置されますが、アセンブリは人工物ではありません。それが最初の場所でそれらを展開する意味がありませんので、Mavenは、どのような方法でそのリポジトリには.tar.gzアーカイブを使用することはできません。
あなたがリポジトリに役に立たないファイルをコピーするために主張する場合、は、あなたがdeploy:deploy-file
を使用する必要があります(<のhref =「http://maven.apache.org/plugins/maven-deploy-plugin/usage.html」のrel = "nofollowをnoreferrer ">ドキュメントがの)手動でファイルを展開し、解放ステップの間にそれを呼び出すために実行してプラグインを設定するにはを参照してください。しかし、私はまだそれに対して助言します。
あなたはおそらく探していると、どこかで自動的にアセンブリをアップロードする方法です。私はこれを行うプラグインを認識していないよ。