Java Maven Maven资源插件复制目标jar
我试图使用resources插件,目的是在构建jar后将其复制到另一个目录(例如/target/runtime) 我可以看到资源是在进程开始时复制的,在构建jar之前,所以阅读它似乎需要在验证阶段运行,即在构建jar之后。然而,这是行不通的。会复制其他文件,但不会复制jarJava Maven Maven资源插件复制目标jar,java,maven,maven-3,Java,Maven,Maven 3,我试图使用resources插件,目的是在构建jar后将其复制到另一个目录(例如/target/runtime) 我可以看到资源是在进程开始时复制的,在构建jar之前,所以阅读它似乎需要在验证阶段运行,即在构建jar之后。然而,这是行不通的。会复制其他文件,但不会复制jar <plugin> <artifactId>maven-resources-plugin</artifactId> &
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/runtime</outputDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${project.basedir}/target</directory>
<targetPath>${project.build.directory}/target/runtime</targetPath>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
maven资源插件
3.0.1
复制资源
验证
复制资源
${project.build.directory}/runtime
真的
${project.basedir}/target
${project.build.directory}/target/runtime
*jar先生
`
[...]
org.apache.maven.plugins
我已经用过很多次了,似乎能胜任这项工作。`
[...]
org.apache.maven.plugins
我已经使用过多次,似乎已经完成了这项工作。资源复制插件定义中的阶段定义为验证。此插件运行时未构建Jar。定义了有关生命周期的更多信息
如果将插件阶段更改为verify,则它会成功复制文件,如下所示
资源复制的插件定义阶段定义为验证。此插件运行时未构建Jar。定义了有关生命周期的更多信息
如果将插件阶段更改为verify,则它会成功复制文件,如下所示
要清楚,您希望生成的JAR同时出现在target
和target/runtime
中,或者只出现在target/runtime
中?同时出现在target和target/runtime中为什么需要这样的东西?非常重要的一点是,为什么配置为对JAR文件进行过滤,这是完全错误的!是的,这是一件非常奇怪的事情。。。你能解释一下你想解决什么问题吗?说得清楚一点,你希望生成的JAR同时出现在target
和target/runtime
,或者只出现在target/runtime
?同时出现在target和target/runtime中为什么需要这样的东西?非常重要的一点是,为什么配置为对JAR文件进行过滤,这是完全错误的!是的,这是一件非常奇怪的事情。。。你能解释一下你想解决什么问题吗?我认为问题不在于将依赖项jar复制到某个位置。问题是将构建的jar复制到目标/运行时。这不会复制依赖项jar。此处的工件仅指新构建的jar,而不是依赖项jar,请检查应答中提到的Apache maven链接谢谢。我对这里提到的Junit依赖项感到困惑。您提到的页面有不同的部分,其中指定了如何复制构建的工件。我认为问题不在于将依赖项jar复制到某个位置。问题是将构建的jar复制到目标/运行时。这不会复制依赖项jar。此处的工件仅指新构建的jar,而不是依赖项jar,请检查应答中提到的Apache maven链接谢谢。我对这里提到的Junit依赖项感到困惑。您提到的页面有不同的部分,其中指定了如何复制构建的工件。
`<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
</execution>
</executions>
<configuration>
<artifactItems>
<artifactItem>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<type>jar</type>
<overWrite>false</overWrite>
<outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
<destFileName>optional-new-name.jar</destFileName>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/wars</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>`