![](/img/trans.png)
[英]How do I copy two separate files into two separate locations in Java?
[英]Maven copy two separate directories and their files in separate locations
我正在尝试使用maven将两个单独的目录及其文件复制到不同位置的目录中,但无法实现这一点,请问有任何机构对此有所帮助吗?
** src / com / smepath ----> buildDirectory / install / ****
** src / com / someotherpath -----> buildDirectory / xsd / ****
尽管这里有一个相关的问题( 使用Maven复制文件的最佳做法 ),但不能解决我的问题。
我正在尝试更改以下解决方案,即。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/install</outputDirectory>
<resources>
<resource>
<directory>src/main/resources/common/install</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/${env}/install</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
就像如果我为我的第二个目录位置xsd
再输入一个类似的条目,然后第二个目录位置优先。
同样在<executions>
使用额外的<excution>
或额外的<configuration>
也不起作用。
将第二个<execution>
添加到pom应该可以。
我的猜测是您没有为每个阶段指定唯一的<id>
。
我的项目布局如下:
src/main/resources/foo
|_a.txt
|_b.txt
src/main/resources/bar
|_c.txt
src/main/resources/baz
|_d.txt
src/main/resources/fum
|_e.txt
|_f.txt
经过clean validate
我最终将文件复制如下:
target/location-1
|_a.txt
|_b.txt
|_c.txt
target/location-2
|_d.txt
|_e.txt
|_f.txt
在我的pom.xml中使用以下插件定义
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources-1</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/location-1</outputDirectory>
<resources>
<resource>
<directory>src/main/resources/foo</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/bar</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources-2</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/location-2</outputDirectory>
<resources>
<resource>
<directory>src/main/resources/baz</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/fum</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
您应该能够以上面的示例为例来复制安装文件和xsd文件。
虽然我按照@azurefrog的建议使用了额外的<execution>
解决方案,但是我也可以使用以下解决方案来实现这一点。
在这里,我将我的两个目录install
和xsd
放在一个resources
目录中,并进一步使用这些东西。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/resources</outputDirectory>
<resources>
<resource>
<directory>src/main/resources/common</directory>
<includes>
<include>install*/**</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/${env}</directory>
<includes>
<include>install*/**</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources/common</directory>
<includes>
<include>xsd*/**</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.