5

我一直在使用maven2和hudson來做我的持續集成,但是我發現Eclipse和Maven不能很好地一起玩。當然有一個插件,但是將maven項目混合到eclipse喜歡的東西中,並且構建時間和單元測試時間太長,這太胡思亂想了。 我正在考慮切換回純粹的eclipse項目,沒有螞蟻,也沒有maven參與。通過最大限度的插件和可能的JavaRebel代理,它會給我一個非常快速的構建 - 部署 - 測試周期。不過,我仍然希望進行自動和測試,因此:如何使用Eclipse項目的持續集成?

如何使用Eclipse項目的持續集成?

有沒有一種命令行方式來做到這一點?

是否有一個已經支持它的生成服務器?

回答

2

我管理找到一個很好的解決方案。在Eclipse-> Project Properties-> Java Build Path-> Source中,取消選中名爲「允許輸出 文件夾的源代碼」的文件夾(可以從Eclipse市場安裝)以使用maven和eclipse時的工作方式

文件夾「

這將使您的項目具有多個輸出路徑,然後Eclipse將開始報告測試類作爲類路徑的一部分。 Infinitest現在可以找到它並開始運行測試!

我所做的只是使用官方Maven的Eclipse插件,加入到我的POM

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.5</version> 
     <!-- <scope>provided</scope> --> 
    </dependency> 

    <dependency> 
     <groupId>org.infinitest</groupId> 
     <artifactId>infinitest</artifactId> 
     <scope>test</scope> 
     <version>4.0</version> 
    </dependency> 

</dependencies> 
4

是的,Eclipse Maven2插件現在是廢話。但是我會建議你在那裏使用,這對使用Maven2有很多好處,所以它實際上是平衡的。

我們所做的是,我們使用Eclipse開發並只使用Maven來管理依賴關係。其他一切都是通過在命令行上運行「mvn」完成的。我們在自己的集成測試項目(...- itest)中進行測試,並持續集成服務器,分兩個階段進行構建,首先構建實際代碼,第二階段構建並運行最佳項目。 (第一通(純編譯)通常是非常快,集成測試建立(與測試運行),通常需要相當長一段時間。)

下面的命令行,使MVN運行測試: mvn -o verify -Ditest

中當然,你需要在你的父POM定義「ITEST」簡介: 說,像這樣的:

<profiles> 
    <profile> 
    <id>integration-test</id> 
    <activation> 
     <property> 
     <name>itest</name> 
     </property> 
    </activation> 
    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <executions> 
      <execution> 
       <id>itest</id> 
      </execution> 
      </executions> 
      <configuration> 
      <testSourceDirectory>src/main</testSourceDirectory> 
      <testClassesDirectory>target/classes</testClassesDirectory> 
      <forkMode>once</forkMode> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
    </profile> 
</profiles> 
+0

有趣的想法,我沒有想到拆分爲兩個項目。我通常都是maven的忠實粉絲,但我注意到構建/測試周期需要很長時間。這個想法可以加快一點我猜。 – 2008-10-02 10:28:41

0

我使用Eclipse的Ant +使用CruiseControl有公平的成功。如果你想自動化,你可能需要的不僅僅是純粹的Eclipse。

CruiseControl可以從源代碼控制中自動檢出項目的副本,構建它,運行測試,然後使用結果更新Web應用程序。上次我用它的時候非常光滑,但那是很久以前的事了。