1

我希望将一些资源复制到 2 个不同的目录中。我如何在 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>
4

2 回答 2

1

我会改用块<resources/>内的标签<build/>

<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>

资源将根据需要复制到两个目标目录。

于 2012-09-14T14:27:11.490 回答
0

outputDirectories 是 java.io.File 类型,因此基于插件,您必须配置 2 个执行。

可惜它不是为处理而设计的

<outputDirectories>
    <outputDirectory>1</outputDirectory>
    <outputDirectory>2</outputDirectory>
</outputDirectories>
于 2012-09-14T14:22:08.557 回答