如何将持续集成与 Eclipse 项目结合使用



我已经使用 maven2 和 hudson 进行持续集成一段时间了,但我发现 Eclipse 和 Maven 不能很好地协同工作。当然有一个插件,但是将 maven 项目混合成 eclipse 喜欢的东西并且构建时间和单元测试太长是很古怪的。我正在考虑切换回一个没有蚂蚁和专家的纯日食项目。使用无限的插件和可能的JavaRebel代理,它将给我一个非常快速的构建-部署-测试周期。但是我仍然希望拥有自动和测试,因此:

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

有命令行方法吗?

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

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

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

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

在 Eclipse->Project Properties->Java Build Path->Source 中,取消选中名为"允许输出"的框源文件夹的文件夹"

这将使您的项目具有多个输出路径,然后 Eclipse 将开始将测试类报告为类路径的一部分。无限现在找到它并开始运行测试!

我所做的只是使用官方的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>

我在使用 Eclipse + Ant 和 CruiseControl 时取得了相当大的成功。 如果你想要自动化,你可能需要的不仅仅是纯粹的Eclipse。

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

相关内容

  • 没有找到相关文章