0

Eclipse使多模塊maven項目的工作變得簡單,因爲您不必在依賴模塊看到更改之前重新構建和重新安裝模塊它。所以你只需改變代碼並在後臺神奇地更新依賴關係。Maven/Eclipse - 快速迭代驗收測試打包爲WAR文件的項目

我想要在驗收測試中實現這種行爲。

storage-service 
    storage-service-war 
    storage-service-acceptance-tests 

如果我使用嵌入式碼頭或Tomcat到存儲服務戰項目中測試則顯然代碼變化在測試中立即查看,但我看不到任何方式來實現從存儲 - 服務 - 驗收測試中進行測試時,同樣的快速迭代測試。

每一種方式,我看它,似乎我必須建立存儲服務戰,然後使用它生成的人工製品,但當你只想改變一行時,它看起來像是過度殺傷。

有沒有人有這樣做的好方法?

乾杯

碼頭

回答

0

所以回答我的問題:D我想出了將不會在CI它很可能只是工作的工作做一個本地編譯的時候,因爲它利用了相對路徑的解決方案的項目。最後,我概述了一個更強大但更復雜的方法,它應該能夠滿足日食和CI。

我在爲戰爭項目的war插件配置設置attachClasses爲true。

<plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.4</version> 
      <configuration> 
       <attachClasses>true</attachClasses> 
      </configuration> 
     </plugin> 
    </plugins> 

然後,您可以參考罐子的依賴項目如下

<dependency> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>storage-service-war</artifactId> 
     <version>${project.version}</version> 
     <classifier>classes</classifier> 
    </dependency> 

然後,我想我可以從驗收測試模塊內使用嵌入碼頭或Tomcat運行我的測試中,指着他們war項目中使用相對路徑定義的web.xml。

這通過命令行正常工作與行家,但在Eclipse :(失敗

這樣做的問題是,通過附加類產生的罐子是不是由Eclipse M2E整合拿起看到 - https://bugs.eclipse.org/bugs/show_bug.cgi?id=365419不幸的是它不會是固定。

所以我暫時的解決辦法是存儲服務戰項目中手動添加到日食我驗收測試項目構建路徑。它不是很大,但它的工作原理

上述解決方案是一個有點哈克但是所提出的替代方案涉及更多一點,

通過項目分成我認爲這將有可能有正確的Eclipse的集成和對CI

storage-service 
    storage-service-core 
    storage-service-war 
    storage-service-acceptance-tests 
    storage-service-config 

核心項目包含Web應用程序的邏輯和源工作,是類型的項目如下jar,配置包含web.xml和其他任何配置文件,並且也是jar類型。然後驗收測試和戰爭項目都是類型戰爭,並且僅用於將核心項目打包成戰爭並將配置提取到webapp/WEB-INF目錄,以便它們可以共享通用設置。