2010-07-28 84 views
0

我需要在用maven2編譯時在目標目錄中創建一個子目錄。原因是我正在使用一個插件來響應SOAP請求,並將它們存儲在集成測試階段的/ target/xml中。如何用Maven2在目標中創建一個子目錄

問題是,如果我指定插件的savepath(例如):$ {basedir}/target/xml,插件會引發FileNotFoundException。我希望文件在/ target中的原因是,在調用mvn clean時清理目錄。

有什麼建議嗎?

回答

6

您可以創建測試用例類擴展的通用抽象基類。
將靜態初始化程序初始化程序添加到抽象基類,該抽象基類檢查目錄是否存在,如果不存在,則創建它。

靜態初始化塊將在第一次加載基類時執行,並且將在測試用例子類中的任何靜態初始化塊或構造函數之前執行。

編輯: OK,那麼你就必須要醜化與下面的插件定義,這將結合生成測試資源phase你的POM,並調用antrun插件創建的目錄。

<build> 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <version>1.4</version> 
     <executions> 
      <execution> 
      <phase>generate-test-resources</phase> 
      <configuration> 

       <tasks> 
       <echo message="Creating test output directory"/> 
       <mkdir dir="./target/xml"/> 
       </tasks> 

      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     ... 
    </plugins> 
    </build> 
+0

我使用maven2的插件做的測試(soapUI的),這樣就不會在我的情況下工作,我怕(測試用例將在一個項目的soapUI指定該插件的加載和運行集成測試階段)。將目標目錄中的xml文件保存起來最簡單,但它會很麻煩,所以我寧願在目標中創建一個名爲「xml」的子目錄,以便將xml文件保存在那裏。 – John 2010-07-28 09:40:00

+0

謝謝。它確實是醜陋的,但它有訣竅 - 我想我可以在目標目錄之外創建輸出目錄,但是我必須定義maven clean插件,以便清理響應XML,嘿嘿。公認。 – John 2010-07-28 12:30:35

+0

謝謝,第一個解決方案(把它放在測試中)適用於我。使用ant插件似乎很瘋狂(爲什麼maven不這樣做?),而測試方法是最少的麻煩。謝謝! – ksclarke 2013-04-04 22:46:04

相關問題