如何使用与Eclipse项目的持续集成?

时间:2008-10-02 07:37:10

标签: eclipse continuous-integration build-automation infinitest javarebel

我一直在使用maven2和hudson进行持续集成,但我发现Eclipse和Maven并不能很好地协同工作。当然有一个插件,但是将maven项目混合成eclipse喜欢的东西并且构建时间和单元测试太长时间是一种胡思乱想。 我正在考虑切换回纯粹的日食项目,没有蚂蚁,也没有涉及maven。使用无限插件和可能的JavaRebel代理,它将为我提供一个非常快速的构建 - 部署 - 测试周期。但是我仍然希望自动和测试,所以:

如何使用与Eclipse项目的持续集成?

有命令行方式吗?

是否有一个本机支持它的构建服务器?

3 个答案:

答案 0 :(得分:4)

是的,Eclipse Maven2插件现在是垃圾。但我建议你留在那里,使用Maven2有很多好处,所以它实际上是平衡的。

我们所做的是,我们使用Eclipse开发并仅使用Maven来管理依赖项。其他一切都是通过在命令行上运行“mvn”来完成的。我们将测试保存在他们自己的集成测试项目(...- itest)中,并让持续集成服务器分两个阶段构建,首先构建实际代码,然后构建第二个并运行-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>

答案 1 :(得分:2)

我找到了一个很好的解决方案。在使用maven和eclipse时,我只是无限(可以从Eclipse市场安装)工作

在Eclipse-&gt;项目属性 - &gt; Java Build Path-&gt; Source中取消选中名为“Allow allow”的框 源文件夹的文件夹“

这将使您的项目具有多个输出路径,然后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>

答案 2 :(得分:0)

我使用Eclipse + Ant和CruiseControl取得了公平的成功。如果你想要自动化,你可能需要的不仅仅是纯Eclipse。

CruiseControl可以自动从源代码管理中检出项目副本,构建它,运行测试,然后使用结果更新Web应用程序。最后我使用它很漂亮,但那是很久以前的事了。