繁体   English   中英

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

[英]How to do file copy in maven plugin?

现在,我正在编写一个Maven依赖项A,并在项目B中使用此依赖项。两者的文件结构为:

依赖关系A:

在此处输入图片说明

项目B:

在此处输入图片说明

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

我试过的是在Dependency A中编写以下代码:

        final File test = new File("files/test.txt");
        final File dest = new File("WebContent");
        try {
            FileUtils.copyFileToDirectory(test, dest);
        } catch (final IOException e) {
            e.printStackTrace();
        }

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

尽管我不建议从一个项目复制到另一个项目。 即使两个项目中的资源相同,每个资源也应作为自己的资源存在,以保持其完整性。 另外,考虑到您正在寻找使用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远程资源


要将资源复制到默认布局或构建/资源中不包含的模块内或目标目录中,您还可以将Maven资源插件用作

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM