2012-02-07 32 views
0

在junit測試用例運行之前,我如何讓maven從另一個項目拷貝一些資源文件?Maven和在測試時刻複製

我想要這樣做是因爲json文件是由ui團隊爲其測試目的而維護的,所以我想使用這些相同的文件來運行我們的圖層,以便我們知道在我們更改時不會打破預期的輸出我們的代碼。

回答

2

一個選擇是使用Maven依賴插件來選擇性地從包含這些文件的項目中「解壓」文件。
例如說在資源文件是com.foo.bar:myArtifact:jar項目,所以你可以做這樣的事情

 

     <build> 
     <plugins> 
      <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.4</version> 
      <executions> 
       <execution> 
       <id>unpack</id> 
       <!-- You could a phase of your choice based on needs --> 
       <phase>compile</phase> 
       <goals> 
        <goal>unpack</goal> 
       </goals> 
       <configuration> 
        <artifactItems> 
        <artifactItem> 
         <groupId>com.foo.bar</groupId> 
         <artifactId>myArtifact</artifactId> 
         <overWrite>true</overWrite> 
         <outputDirectory>${project.build.directory}</outputDirectory> 
         <includes>*.json</includes> 
        </artifactItem> 
        </artifactItems> 
       </configuration> 
       </execution> 
      </executions> 
      </plugin> 
     </plugins> 
     </build> 


這將複製所有以.json文件(只是舉個例子)到當前項目的構建輸出目錄。
您可以參考依賴插件瞭解更多配置選項。
希望這有助於。

+0

如果我想複製的項目是在我想複製的項目之後構建的,該怎麼辦? – arinte 2012-02-07 21:35:41

+0

@arinte首先,依賴某個項目後建立的項目並不是一個好習慣。 如果有需要,您可以鏈接其他項目(符號鏈接)上的文件,或者如果它們屬於同一個源代碼樹,則可以使用相對路徑(例如$ {basedir} /../ some-項目建成-後我/ src目錄/主/資源/ ... – 2012-02-10 00:41:52