【问题标题】:MyEclipse builders and CIMyEclipse 构建器和 CI
【发布时间】:2010-11-19 10:36:00
【问题描述】:

我正在为一个当前使用 MyEclipse 构建的项目寻求支持,该项目拥有一支规模不错的开发团队,并且一直在没有任何 CI 流程的情况下工作。

据我所知,MyEclipse 的人don't see any value 能够在 Eclipse 平台之外进行构建,这对我来说毫无意义。当您必须将来自多个开发环境的更改集成到代码库中时,持续集成非常很有帮助,而当您绑定到 GUI 时,自动化构建非常困难。

是否有人围绕 MyEclipse 风格的项目集设置了持续集成流程?如果是这样,您使用什么策略来完成它?

AFAIKT 没有可以从 MyEclipse 生成 Ant 脚本(或等效的无头构建脚本)的 OOTB 功能,也没有公开的方式从构建脚本平台调用 MyEclipse 构建器。

这会让我相信我需要根据 MyEclipse 生成的内容对脚本进行逆向工程,而我宁愿不必这样做。

我并不特别关心 Maven 风格的解决方案能否满足我的需求,但如果您知道我想听听的。从我最初的研究来看,Maven/MyEclipse 集成似乎更糟糕。

【问题讨论】:

  • MyEclipse 和 Maven/CI 的立场导致我的团队放弃了它。
  • @Mike - 感谢您的评论 - 我感觉您不是这个类别中的唯一一个。 :)

标签: ant build automation continuous-integration myeclipse


【解决方案1】:

这与我在使用 websphere 5.1 应用程序时遇到的问题非常相似,该应用程序只能从运行在构建机器上的 WSAD6 构建,该构建机器由公司 IT 部门的磁盘映像构建。 WSAD 确实有无头模式。从 Hudson 那里得到这个工作真的很痛苦。

如果您使用的每个构建器都有一个 Maven 插件和/或 Ant 任务,我不会感到惊讶。我会从那里开始。

【讨论】:

  • 好主意 - 这正是我一直在寻找的东西,但遗憾的是,Genuitec 似乎还没有发布任何这样的任务集(尽管创建它们很简单,因为它们已经编写了代码! ) 因为这对他们来说似乎并不重要......见myeclipseide.com/…
【解决方案2】:

这是一个基于 Maven 的解决方案,所以对你来说可能有点离题..

在我们公司,我们使用 MyEclipse 作为 IDE,使用 Hudson 和 Team City 进行持续集成。这些项目是基于 Maven 的,因此 Hudson 和 TC 可以使用它们。

当您想在 Eclipse 中打开项目时,您必须检查源代码,使用 mvn eclispse:add-maven-repo 为 Eclipse 设置 maven 存储库路径,使用 mvn install 构建它们,然后运行目标 mvn eclipse:eclipse,这将创建 Eclipse来自 Maven 的 POM 配置的项目设置。然后可以将项目导入 Eclipse 并无缝使用它..

更多信息请访问maven-eclipse-plugin project page

..无缝直到您更改 POM 配置中的某些内容 - 然后您必须再次运行 mvn eclipse:eclipse 并根据新的 POM 重新创建 eclipse 项目配置.. 重要的是不要忘记这一步,除非您IDE 中的项目无法正常工作,您会想知道为什么;)

我个人认为这个解决方案不是最好的,但这就是 Eclipse 人员使用 Maven 的方式:/

希望这至少能启发你:)

【讨论】:

  • 感谢您的建议,Martin - 我不喜欢 Eclipse,您的想法对于使用标准 Eclipse 项目来说是合理的。我的问题与 MyEclipse Genuitec 产品有关,该产品包括一些用于创建“项目集”的特定插件,这些插件会生成特定于项目的工件(web.xml、ejb-jar.xml 等)并为您构建/部署项目。
  • 我认为这应该不是问题。在我们公司,我们也都在使用 MyEclipse,我刚刚写了关于 Eclipse,因为这个过程对于 Eclipse/MyEclipse 都是通用的。Eclipse 中的构建/部署独立于 Maven 的构建/部署 - 例如我们必须配置 MyEclipse 项目的构建路径以在构建中包含 xml 和 html 文件。这是因为 MyEclipse 没有使用 pom.xml 进行构建,而是根据 MyEclipse 的项目文件来构建项目。这意味着您可以分别配置 Maven 构建/部署和 MyEclipse 构建/部署过程。
  • "这意味着您可以分别配置 Maven 构建/部署和 MyEclipse 构建/部署过程。"是的-但这就是我要避免的-必须维护2个不同的构建过程。看起来好像在 MyEclipse 支持无头模式之前,您唯一能做的就是以 Ant 或 Maven 友好的方式对它正在做的事情进行逆向工程。
  • 啊哈,我现在明白了 :) 恐怕你在逆向工程方面是对的:/
【解决方案3】:

这是我非常不喜欢 Eclipse 的另一个原因。 IDE 可以迫使您放弃公认的最佳实践,这一事实是可耻的。

“AFAIKT 没有可以从 MyEclipse 生成 Ant 脚本(或等效的无头构建脚本)的 OOTB 功能”-我不确定我是否理解为什么这是一个问题。可以在一两个小时内编写一个简单的 Ant build.xml,它可以为大多数打包为 WAR 文件的 Java EE 应用程序完成这项工作。我不知道您是否使用 EJB,但即使添加应用程序服务器特定的任务(例如 EJB 和 JSP 编译)也不是什么大问题。如果您可以就通用目录结构达成一致,它甚至可以跨项目重用。

有了 Ant build.xml,您应该能够通过检查 Subversion 来驱动您的 CI 流程。我听说 Eclipse 插件可以很好地完成这项工作。

如果真的有问题,我会推荐 IntelliJ。它可以很好地与基于 Cruise Control 或 Hudson 或 Jet Brains 自己的 Team City 的 CI 配合使用。成本并不过分,而且很快就会收回成本。

如果我误读了您的问题,我深表歉意。但如果我做对了,我绝不会让 IDE 以这种方式对团队发号施令。

【讨论】:

  • 同意您的哲学观点。有一个庞大的代码库,用这个 MyEclipse 产品构建了许多不同类型的项目(类似于 Rational,Eclipse 之上的一个层),它为开发人员解决了很多依赖管理和打包问题。它在试图解决的问题上做得很好。唯一的问题是它没有公开可以在 IDE 之外构建代码的接口。设计师显然不认为这是一个问题。正如你所指出的,我可以对 Ant 脚本进行逆向工程,但对于这种规模的代码库来说,这将是一场噩梦。
猜你喜欢
  • 1970-01-01
  • 2019-03-05
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 2016-06-09
相关资源
最近更新 更多