Maven:我可以在WEB-INF和其他目录中复制资源吗



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

最新更新