我希望将一些资源复制到两个不同的目录中。如何在pom中指定此项?
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>
${project.build.directory}/${project.build.finalName}/lib
</outputDirectory>
<resources>
<resource>
<directory>${SOME_LIB}</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
我会在<build/>
块中使用<resources/>
标记。
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<targetPath>${project.build.directory}/txt</targetPath>
<includes>
<include>*.txt</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<targetPath>${project.build.directory}/png</targetPath>
<includes>
<include>*.png</include>
</includes>
</resource>
<resource>
<directory>${SOME_LIB}</directory>
<targetPath>${project.build.directory}/lib</targetPath>
<includes>
<include>*.dll</include>
</includes>
</resource>
</resources>
</build>
通过这种方式,您可以将不同的文件排序到不同的目标路径。
对于您的确切问题,这将起作用:
<build>
<resources>
<resource>
<directory>${SOME_LIB}</directory>
<targetPath>${project.build.directory}/${project.build.finalName}/lib</targetPath>
</resource>
<resource>
<directory>${SOME_LIB}</directory>
<targetPath>${project.build.directory}/${project.build.finalName}/WEB-INF</targetPath>
</resources>
</build>
资源将被复制到BOTH目标目录中,正如您所希望的那样。
outputDirectories是java.io.File类型,因此根据插件,您必须配置2个执行。
遗憾的是,它不是为处理而设计的
<outputDirectories>
<outputDirectory>1</outputDirectory>
<outputDirectory>2</outputDirectory>
</outputDirectories>