代码之家  ›  专栏  ›  技术社区  ›  Gandalf StormCrow

从Maven中的项目复制文件

  •  22
  • Gandalf StormCrow  · 技术社区  · 14 年前

    有没有可能在Maven阶段将文件夹从我的项目复制到某个特定的位置?有人知道怎么做吗?

    3 回复  |  直到 8 年前
        1
  •  29
  •   Makoto    8 年前

    Maven的方法是使用 copy-resources 中的目标 maven-resources-plugin

    http://maven.apache.org/plugins/maven-resources-plugin/examples/copy-resources.html

    <project>
      ...
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.7</version>
            <executions>
              <execution>
                <id>copy-resources</id>
                <!-- here the phase you need -->
                <phase>validate</phase>
                <goals>
                  <goal>copy-resources</goal>
                </goals>
                <configuration>
                  <outputDirectory>${basedir}/target/extra-resources</outputDirectory>
                  <resources>          
                    <resource>
                      <directory>src/non-packaged-resources</directory>
                      <filtering>true</filtering>
                    </resource>
                  </resources>              
                </configuration>            
              </execution>
            </executions>
          </plugin>
        </plugins>
        ...
      </build>
      ...
    </project>
    
        2
  •  21
  •   mort    14 年前

    看看maven antrun插件。您可以在任何maven阶段复制文件,如下所示:

        <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.4</version>
          <executions>
            <execution>
              <id>copy</id>
              <phase>compile</phase>
              <configuration>
                <tasks>
                  <copy file="myFileSource" tofile="MyFileDest"/>
                </tasks>
              </configuration>
              <goals>
                <goal>run</goal>
              </goals>
            </execution> 
          </executions>
        </plugin>
    
        3
  •  3
  •   Community Egal    7 年前

    类似于 @mort's one :

    <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.8</version>
      <executions>
        <execution>
          <id>copy</id>
          <phase>compile</phase>
          <configuration>
            <target>
              <copy file="sourceFile" tofile="targetFile"/>
            </target>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution> 
      </executions>
    </plugin>
    

    请注意 <tasks> 节点已弃用,而支持 <target> 截至的节点 maven antrun插件1.5 .