2016-08-07 6 views
2

メインのJavaプロジェクトとそのすべての依存関係でjarファイルを作成します。私はポンポンファイル内の次のプラグイン定義を作成:maven-dependency-pluginはoutputDirectoryの設定を無視します

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.5.1</version> 
    <executions> 
     <execution> 
      <id>copy-dependencies</id> 
      <phase>package</phase> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
       <!-- exclude junit, we need runtime dependency only --> 
       <includeScope>runtime</includeScope> 
       <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

ので、私はmvn dependency:copy-dependenciesを実行し、それがtarget/dependency代わりのdependency-jarsにコピーし、すべての依存関係のことを正常に動作します。何か案は?正常です

答えて

3

:あなたはしかし、コマンドラインで直接ゴールdependency:copy-dependenciesを起動すると、設定したものとは異なるデフォルトの実行を作成し、copy-dependenciesという名前の、maven-dependency-pluginの特別な実行を設定しました。したがって、設定は考慮されません。あなたがプラグインを設定することができる場所

はMavenのでは、2ヶ所あります。いずれか、または各実行のために(<plugin>レベルで<configuration>を使用して)すべての実行のために(<execution>レベルで<configuration>を使用します)。

  • <execution><configuration>外を移動し、すべての実行のために、それは一般的な作り

    はあなたの問題を解決するには、いくつかの方法があります。あなたは持っているでしょう。(具体的な実行コンフィギュレーション内で上書きしない限り)これで、プラグインのすべての実行は、この設定を使用しますが、

    <plugin> 
        <artifactId>maven-dependency-plugin</artifactId> 
        <version>2.5.1</version> 
        <configuration> 
        <!-- exclude junit, we need runtime dependency only --> 
        <includeScope>runtime</includeScope> 
        <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory> 
        </configuration> 
    </plugin> 
    

    注意。

  • コマンドラインで特定の実行、つまり設定した実行を実行します。 This is possible since Maven 3.3.1とあなたが

    mvn dependency:[email protected] 
    

    @copy-dependenciesを実行するだろうが、あなたが起動したい実行の<id>を参照するために使用されます。

  • Mavenライフサイクルの特定の段階に実行をバインドし、ライフサイクルの通常の流れで実行させます。あなたの設定では、すでにpackageフェーズにバインドされており、<phase>package</phase>です。したがって、mvn clean packageを呼び出すと、設定された場所で依存関係が機能してコピーされます。

関連する問題