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