2016-05-10 14 views
3

mvn dependency:sourcesで、すべての依存関係のソースをダウンロードできます。 mvn copy-dependenciesを使用すると、すべての依存関係を指定されたローカルディレクトリにダウンロードできます。依存関係のソースをMavenのディレクトリにコピーする方法

2つを組み合わせて、すべての依存関係のソースをディレクトリにコピーできるようにするにはどうすればよいですか?

答えて

2

私はこれらのソリューションを使用しません。

はちょうどあなたのMavenのビルドにMavenの-dependeny - プラグインが含まれており、ニーズに設定を調整します

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.10</version> 
    <configuration> 
    <outputDirectory>/tmp/alternateLocation</outputDirectory> 
    </configuration> 
    <executions> 
    <execution> 
     <id>copy-dependencies</id> 
     <phase>none</phase> 
     <goals> 
     <goal>copy-dependencies</goal> 
     </goals> 
     <configuration> 
     <outputDirectory>/tmp/alternateLocation</outputDirectory> 
     <overWriteReleases>false</overWriteReleases> 
     <overWriteSnapshots>false</overWriteSnapshots> 
     <overWriteIfNewer>true</overWriteIfNewer> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

あなたは、あなたのニーズに合わせていくつかの項目を変更することができ、例えば、一例では私は私は直接あなたに解決策を与えると思いますが、tmpフォルダ内のalternateLocationをコピーする依存関係はありません。しかし私は、私の新しい目標はコピー依存性であるとも言います。あなたは、私が今気づくOUTPUTDIRECTORYは二回設定されている場合

mvn dependency:copy-dependencies 

:だから、コマンドラインでは、これはのようなものになるでしょう。実行の中では、パッケージクリーンテスト、...のような指定されたビルドフェーズを実行しているときだけ、それが考慮されることを意味します。プラグインノードの最初の子の兄弟として、コマンドラインが明示的に依存性プラグインを呼び出すとき、それがあなたが望むものとみなされることを意味します。

あなたがここにMavenの依存プラグインの詳細については見つけることができます:あなたが同時に依存関係とソースを必要とするので、私は考えることができます最善の方法を

を実際のプラグインを暗黙的に呼び出すことなくmavenを正常に実行することで実現できます。それは、常に先のフォルダにコピーを作成しますが、上書きされることはありません

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.10</version> 
    <configuration> 
     <outputDirectory>/tmp/alternateLocation</outputDirectory> 
    </configuration> 
    <executions> 
     <execution> 
      <id>copy-dependencies</id> 
      <phase>post-clean</phase> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>/tmp/alternateLocation</outputDirectory> 
       <overWriteReleases>false</overWriteReleases> 
       <overWriteSnapshots>false</overWriteSnapshots> 
       <overWriteIfNewer>true</overWriteIfNewer> 
      </configuration> 
     </execution> 
     <execution> 
      <id>sources</id> 
      <phase>post-clean</phase> 
      <goals> 
       <goal>copy-dependencies</goal> 
      </goals> 
      <configuration> 
       <classifier>sources</classifier> 
       <outputDirectory>/tmp/alternateLocation</outputDirectory> 
       <overWriteReleases>false</overWriteReleases> 
       <overWriteSnapshots>false</overWriteSnapshots> 
       <overWriteIfNewer>true</overWriteIfNewer> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

:あなたはポストクリーン相(すなわちMVNポストクリーン)を介してそれを実行した場合には、2次の目標を実行しますファイルが既に存在する場合。私は頻繁に使用される段階を選択しなければならなかった。 ポストクリーンは、ここで最善の候補と思われました。これは私がこの種のビルドを分離したいと考えているだけです。 ポストクリーンもビルドをクリーンアップします。ビルドを行うたびにこのプラグインを使い続けたい場合は、またはをインストールすることをお勧めします。それは常にバックグラウンドで起こり、あなたはそれを心配しません。

+0

私はそれが依存関係のソースをフェッチするのではないかと疑います。 :( –

+0

今それは!:) –

関連する問題