如何在maven插件中进行文件复制?

时间:2017-01-06 03:11:29

标签: java spring maven

现在我正在编写maven依赖关系A,并在项目B中使用此依赖关系。两者的文件结构都是:

依赖性A:

enter image description here

项目B:

enter image description here

我尝试做的是在项目B中运行 mvn spring-boot:run ,在A'中运行 test.txt src / main / resources / files 将被复制到项目B中的 / WebContent

我所尝试的是在依赖关系A中编写以下代码:

var funcs=[];
for(var i=0;i<3;i++){

  funcs[i]=function(){
    console.log(i);
    };
  }
for(var j=0;j<3;j++){
  funcs[j]();
  }

但是当我 mvn spring-boot:run 时,它说该文件不存在。

1 个答案:

答案 0 :(得分:0)

虽然我不建议从一个项目复制到另一个项目。 即使两个项目中的资源相同,资源也应作为自己的资源存在,以保持其完好无损。 另外,考虑到你正在寻找maven的解决方案。

多模块maven项目可以使用远程资源插件将资源捆绑在一个公共位置 -

<plugin>
    <artifactId>maven-remote-resources-plugin</artifactId>
    <version>1.5</version>
    <executions>
      <execution>
        <goals>
          <goal>bundle</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <includes>
        <include>**/*.ddl</include>
        <include>**/*.sql</include>
      </includes>
    </configuration>
</plugin>

来源 - Maven Remote Resources

要复制模块或目标目录中不属于默认布局或构建/资源的资源,您还可以使用Maven Resources Plugin作为

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.0.2</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>