2016-11-23 28 views
1

我有我的IntelliJ項目3個模塊:用POM自動將文件複製

  • 一個Java模塊
  • 一個科特林模塊
  • 一個雜項文件模塊

我有一個Xc文件在misc文件模塊中,我需要在Kotlin模塊的測試資源文件夾中有精確的副本。即每當我更新它時,我都需要將它複製到Kotlin模塊。

如何更新我的Kotlin模塊的maven POM文件,以便它可以自動複製此文件?

+0

這是什麼文件?它是一個項目資源嗎?什麼時候使用?最終產品應該在哪裏結束? – Tunaki

+0

是一個資源文件。你知道,我還不知道最終產品 - 我只是談論kotlin模塊的測試資源文件夾(作爲副本的目的地) - 它用於某些報告,這是通過運行特殊測試(聽起來很奇怪,但測試是做這個報告的好方法,因爲它們可以被參數化,這對於這個項目很有用) – ycomp

+0

然後它聽起來像Kotlin模塊依賴於misc模塊。在這方面添加一個'',並將這些文件放置在Misc項目的src/main/resources'文件夾下。這樣,Kotlin模塊將像訪問任何類路徑資源一樣訪問它。 – Tunaki

回答

0

您不能直接使用Maven複製文件,但有一個插件用於執行Ant任務。其中一項預先定義的任務是copy,可以使用,如下所示。它可以掛鉤到Maven執行的各個階段。這可能需要一些擺弄。

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <version>1.8</version> 
     <executions> 
     <execution> 
      <id>copy-war-to-docker</id> 
      <phase>package</phase> 
      <goals> 
      <goal>run</goal> 
      </goals> 
      <configuration> 
      <target> 
       <copy file="${build.warFile}" 
        tofile="${basedir}/docker/${build.name}.war"/> 
      </target> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build>