9

I have 2 artifacts that I'd like to copy from my local repository to a directory in filesystem.

I think dependency:copy does this job. But, it requires an argument artifactItems. http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html

Can any one help me with using this goal in command line. Unfortunately, maven doesnt show the usage of this goal in command line.

4

3 に答える 3

5

コマンド ラインで提供する方法を見つけようとするのではなくartifactItem、依存関係プラグインのコマンド ライン実行を構成します。default-cli実行IDとして指定することでそれを行います。常に同じ依存関係をコピーしたい場合は、アーティファクト アイテムで GAV 座標をハードコーディングできます。または、コマンド間で一定の値をハードコーディングします。

コマンド ラインからさまざまなアーティファクトをコピーするには、プロパティを要素の値として使用し、コマンド ラインで値を指定します。たとえば、次の構成がartifactItem含まれている<artifactId>${copy.artifactId}</artifactId>場合

mvn dependency:copy -Dcopy.artifactId=myArtifact

myArtifact をコピーします (例では、他の要素にハードコーディングされた値があると想定しています)。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.4</version>
    <executions>
    <execution>
    <id>default-cli</id> 
    <configuration>
      <artifactItems>
        <artifactItem>
          <!-- hardcode values, or use properties, depending on what you want to do -->
          <groupId>[ groupId ]</groupId>
          <artifactId>[ artifactId ]</artifactId>
          <version>[ version ]</version>
          <type>[ packaging ]</type>
          <outputDirectory>/the/filesystem/dir</outputDirectory>
        </artifactItem>
      </artifactItems>
      <!-- other configurations here -->
    </configuration>
    </execution>
    </executions>
  </plugin>
于 2012-06-26T15:32:54.650 に答える
3

これをMavenプロジェクト内から行うか、Mavenプロジェクトなしで行うかは不明です。前者の場合、これを使用できます:

mvn dependency:copy -Dartifact='group.id:artifact.id:your.version'

using プロパティでアーティファクトのバージョンを定義する場合は、次のpom.xmlようにそのバージョンを使用することもできます。

mvn dependency:copy -Dartifact='group.id:artifact.id:${version.property}'
于 2016-02-25T03:07:39.553 に答える