如何自动化IntelliJ IDEA 11项目的Java构建过程?

时间:2012-05-03 03:55:23

标签: java intellij-idea continuous-integration build-automation

我正在尝试为我正在开发的Java项目建立一个持续集成系统。我计划在前端使用Jenkins或一些等价物。 Java项目配置为使用IntelliJ IDEA IDE,版本11.问题是无法从命令行界面构建IntelliJ IDEA 11项目,这是必需的,因此它可以与CI前端接口(Jenkins)

我已经研究过几种可能的解决方案。它们如下。

潜在解决方案#1

使用IntelliJ IDEA的“生成Ant构建”功能。此解决方案存在两个问题:

  1. 这意味着我必须维护生成的ant文件以及IntelliJ构思配置文件,我不想这样做,或者我必须以编程方式定期或动态地重新创建ant文件,这是不可行的,因为这也没有命令行界面。
  2. 无论如何它甚至都没有用。该项目相当复杂,因为有些Java文件被配置为被排除,并且生成的ant文件不能正确执行排除。此外,看起来甚至没有正确生成依赖项。 (彻底地)搜索谷歌告诉我,IntelliJ甚至不支持这个实用程序,它的使用应该“避免”。
  3. 潜在解决方案#2

    使用第三方应用程序动态生成ant构建文件,即ant-intellij-tasks。当我看到这个项目时,我非常兴奋,但不幸的是它看起来自2009年以来一直没有更新,并且不适用于新版本的IntelliJ IDEA。我找不到像这样的任何其他最新和有效的库。

    一些附加说明

    This link表示其他人遇到类似的问题,并且想要一个命令行界面(该链接是对比赛所需的插件的描述 - 来源是IntelliJ IDEA本身)。

    有没有其他人使用此工具集设置构建自动化?你是怎么做到的?我正在寻找的答案理想情况下不需要管理其他配置文件,并允许我在命令行上键入内容并进行构建。

2 个答案:

答案 0 :(得分:6)

将项目转换为适合maven比自定义Maven以处理项目结构更容易。

虽然你可以做后者,但大多数时候人们根本没有设计出他们的项目布局非常干净的方式,并且在采用maven布局之后,他们的项目变得更易于管理。

如果您调整默认maven项目布局的良好模式,IDEA将自动读取并完全理解它 - 甚至共享您在IDE中的命令行上使用的相同编译器输出。 IDEA将使用pom.xml作为其配置文件。

你不能用Ant做这件事,因为它是一个构建过程包装器。 Maven不仅是一种依赖管理机制 - 它是一个项目的抽象,IDE可以用它来配置自己。

答案 1 :(得分:0)

您可以使用TeamCity构建IntelliJ项目。这很好用,是自动化的,有很多插件可以让你运行命令行任务,蚂蚁任务等。

这是我经常使用的工作流程之一。

TeamCity充当Ivy存储库。所以你不必设置神器。

我确实喜欢maven。这一切都取决于你的需求。 Maven很棒,只要你想用maven方式做事 - 这是一个非常好的工作流程。

记录少数IDE处理Maven的项目很好。 IntelliJ做得不错。