如何使用maven依赖:复制目标?

时间:2012-06-26 10:46:32

标签: maven dependencies

我有2个工件,我想从本地存储库复制到文件系统中的目录。

我认为依赖:复制完成这项工作。但是,它需要一个参数artifactItems。 http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html

任何人都可以帮助我在命令行中使用此目标。不幸的是,maven并没有在命令行中显示这个目标的用法。

3 个答案:

答案 0 :(得分:3)

我没有试图弄清楚如何通过命令行提供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>

答案 1 :(得分:3)

不确定是否要在Maven项目中或没有Maven项目中执行此操作。如果是前者,您可以使用:

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

如果您使用属性在pom.xml中定义工件的版本,您也可以使用该版本:

mvn dependency:copy -Dartifact='group.id:artifact.id:${version.property}'

答案 2 :(得分:1)

如果您不想在pom.xml中编写 artifactItems ,可以使用命令:“mvn dependency:copy-dependencies”而不是“mvn dependency:copy”。