我有2个工件,我想从本地存储库复制到文件系统中的目录。
我认为依赖:复制完成这项工作。但是,它需要一个参数artifactItems。 http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html
任何人都可以帮助我在命令行中使用此目标。不幸的是,maven并没有在命令行中显示这个目标的用法。
答案 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”。