を使用していますが、lib
とbin
が簡単です。 copy all dependencies to a folderへ
ちょうどこの操作を行います。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/dist/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
を出力するためにあなたのjarファイルをbinフォルダに行い、この(reference page):
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<finalName>${project.artifactId}</finalName>
<outputDirectory>${project.build.directory}/dist/bin</outputDirectory>
</configuration>
</plugin>
ああ、追加の要件があります
ボトムライン:これをすべてやりたいですが、cのようなデフォルトの "ターゲット"の動作を変更したくありませんこの場合ompileやパッケージなど
私が上でこれを有効にするプロファイルを使用したい:あなたは追加しない場合は今、あなたはあなたのdistディレクトリを得るためにmvn clean package -Pdist
を行うと考え
<profile>
<id>dist</profile>
<build>
<plugins>
<!-- insert stuff from above here -->
</plugins>
</build>
</profile>
デフォルトの動作が得られます。
基本的に、物事は、antでのやり方とは異なる方法で動作します。ターゲットはなく、ライフサイクルフェーズとプラグインの目標だけがあります。あなたがmvn compile
をすれば
あなたがアップし、このいずれかにすべてのフェーズにバインドされているすべてのMavenプラグインの目標を呼び出しますライフサイクル・フェーズを実行するか(例えば、以下のフェーズが実行されます:validate
、initialize
、generate-sources
、process-sources
、generate-resources
,process-resources
,compile
)。しかし、dist
という名前のライフサイクルフェーズを定義する(簡単な)方法はありません。
また、特定のプラグインの目標を実行することもできます(複数のフェーズやプラグインの目標を実際に実行できます)。例えば。独自のdistプラグインを作成してmvn dist:dist
を使用して呼び出すこともできますが、既存の機能を使用していて、プロファイルソリューションが適切に機能しているため、推奨しません。
大丈夫ですが、このアクションはどのように始まりますか?私は 'mvn package'を実行しますか?私は 'maven dist'のようなことをして、これを起こさせたいのですが(質問でこれを更新しました)可能ですか? – jrharshath
+1 hm、参考にしてください。質問:私はパッケージのライフサイクルまたは展開で何をしたいのですか?なぜ? – jrharshath
@simpaticoこれは私の答えではなく、質問に対するコメントでなければならないと思いますか? –