我有 2 个工件,我想从本地存储库复制到文件系统中的目录。
我认为 dependency:copy 可以完成这项工作。但是,它需要一个参数 artifactItems。 http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html
任何人都可以帮助我在命令行中使用这个目标。不幸的是,maven 没有在命令行中显示这个目标的用法。
我有 2 个工件,我想从本地存储库复制到文件系统中的目录。
我认为 dependency:copy 可以完成这项工作。但是,它需要一个参数 artifactItems。 http://maven.apache.org/plugins/maven-dependency-plugin/examples/copying-artifacts.html
任何人都可以帮助我在命令行中使用这个目标。不幸的是,maven 没有在命令行中显示这个目标的用法。
我不会试图弄清楚如何提供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>
不确定您是想在 Maven 项目中还是没有项目中执行此操作。如果是前者,您可以使用:
mvn dependency:copy -Dartifact='group.id:artifact.id:your.version'
如果您在pom.xml
using 属性中定义工件的版本,您也可以让它使用该版本,如下所示:
mvn dependency:copy -Dartifact='group.id:artifact.id:${version.property}'
如果您不想在 pom.xml 中编写artifactItems,您可以只使用命令:“mvn dependency:copy-dependencies”而不是“mvn dependency:copy”。