5

我一直在使用 maven2 和 hudson 进行持续集成,但我发现 Eclipse 和 Maven 不能很好地配合使用。当然有一个插件,但是将 maven 项目混搭成 eclipse 喜欢的东西,构建时间和单元测试太长了。我正在考虑切换回一个没有 ant 和 maven 的纯 Eclipse 项目。使用无限的插件和可能的 JavaRebel 代理,它会给我一个非常快速的构建-部署-测试周期。但是我仍然希望有自动和测试,所以:

如何在 Eclipse 项目中使用持续集成?

有命令行方法吗?

是否有本地已经支持它的构建服务器?

4

3 回答 3

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>
于 2008-10-02T09:18:25.953 回答
2

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

在 Eclipse->Project Properties->Java Build Path->Source 中取消选中名为“Allow output folder for source folder”的框

这将使您的项目具有多个输出路径,然后 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>
于 2008-10-23T13:32:53.907 回答
0

我在使用带有 CruiseControl 的 Eclipse + Ant 方面取得了相当大的成功。如果您想要自动化,您可能需要的不仅仅是纯 Eclipse。

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

于 2008-10-08T20:21:06.240 回答