精简版:
在 JEE6 应用程序的上下文中:在专用构建服务器(用于 CI / 集成测试)中设置独立于 IDE 的主构建过程的最佳方法是什么,同时仍在开发人员工作站上使用 IDE?哪种 Java IDE 更适合这种方法?
长版:
我们正在构建一个JSF2/PrimeFaces/EJB3.1 JEE6应用程序以部署在JBoss应用程序服务器上。我们需要使用Ant脚本在专用机器中生成EAR、WAR和JAR工件,并以 CI 方式(可能使用Jenkins)进行集成测试。
团队还需要使用 Java IDE(只有一种,不用担心)。因此,开发人员将使用他们自己的本地安装的 IDE 为自己的测试和开发生成本地工件。但是,我希望构建服务器上的主构建脚本独立于任何 IDE。如果团队使用的 IDE 不能接受并与外部提供的Ant脚本紧密集成,这可能会导致主要Ant构建脚本不同并且必须独立维护和发展的情况。因此,理想情况下,我希望开发人员的 IDE 和构建服务器都使用相同的手工构建脚本。在这样的设置下,如果开发者看到需要修改Ant脚本,修改通过git / svn到达 CI 服务器并用于后续构建。我强调“手工制作”,因为例如在 NetBeans 的情况下,我不想使用从 IDE 自动创建的Ant构建脚本。请参阅在这种方法中必须处理的令人难以置信的细节(我宁愿避免),在这里。
因此,我想知道您认为哪些主要的 Java IDE(Eclipse、Netbeans、IntelliJ IDEA 等?)更适合接受外部提供的 Ant 脚本作为“项目定义”并与之紧密集成(在自动完成和调试、添加库等)。这篇 SO 文章中的讨论似乎是相关的,但与我的团队不会使用两个不同的 IDE 的情况并不完全相同。最后,我知道Maven可能会提供一种解决方案,因为 NetBeans 可以使用基于 Maven 的项目,其中Maven pom.xml 是项目文件,并且不必处理其他特定于 IDE 的工件,但是有足够的Maven网络上的 FUD(我不引用消息来源,因为我不想转移讨论)我觉得在没有任何重大事先接触的情况下将它用于一项重大任务时会感到不舒服。