2012-02-03 27 views
4

这里是情况。一个开发团队拥有大量(数百个)Eclipse项目。代码非常流失 - 正在创建新项目;项目正在重新命名,项目依赖性也在不断变化。外部构建系统是蚂蚁。保持ant构建文件中定义的依赖与Eclipse中的世界状态同步是非常具有挑战性的。外部蚂蚁的构建需要不断的变化。由于各种原因,在Eclipse中将ant用作默认构建器不是一个选项。开发人员希望继续使用Eclipse作为本地使用的构建和编辑环境。保持Eclipse项目依赖性与外部构建系统同步

问:是否有一个工具,这将允许单套的依赖要保持的,可以通过Eclipse的使用以及外部编译系统就像蚂蚁? 我听说过Gradle,但从未使用过它。在这种情况下它有意义吗?我敢肯定的Maven难道不为所需要的工作 典型的工作流程应该是:
1.开发商继续合作,因为他们目前还 - 创建和随意改变Eclipse项目的依赖和使用默认的Eclipse构建器来编译和测试本地。
2.存在一些机制,通过这些机制可以将这些依赖关系传送到外部构建系统,如ant和每次检入时触发的外部连续构建。
感谢您的反馈 - 谢谢!

+2

为什么maven不工作?与M2E的关系(目前在Indigo中),这确实有效......如果您想使用像Maven,Gradle或Ant这样的构建系统,那么对构建/依赖关系等的更改必须在构建系统中完成,而不是在Eclipse ...领先的系统是构建系统,而不是IDE ...开发人员必须了解Eclipse不是一个构建系统,它只是一个工作环境,但不打算成为构建系统。 – khmarbaise 2012-02-03 13:40:26

+0

感谢M2E的参考 - 我会看看。没有切换到构建系统成为领先系统的主要原因是历史 - 在工作开始时并不存在外部构建系统,并且最近才引入。将它不显眼地集成到开发者已经习惯的工作流中将会很好。假设人们咬紧牙关,使构建系统成为领先系统,是否有自动的方式将现有的Eclipse项目依赖关系吸收到Maven/Gradle甚至Ant中? – anand 2012-02-03 14:48:23

回答

0

如何解析classpath文件,生成依赖关系树,并开始从根本建设。你需要的是一个关于你的项目布局的约定或者一个可以在每个项目中改变的通用(ant)构建文件,如果需要的话(例如不同的项目布局)。我不确定是否可以使用Eclipse Tycho,因为它是构建eclipse插件或项目的maven插件。但是它能够解决maven仓库和eclipse更新站点的捆绑和项目依赖性问题。

2

我们已经相当成功,在使用摇篮,以解决类似的问题。这里的设置

  • 的每个项目都包含一个build.gradle定义项目特定的依赖和任务(甚至可能是空的)的轮廓。
  • 特殊master项目包含build.gradle,设置了共同的依赖和对儿童的项目任务,和/或注入设置相关的一组儿童的项目。
    • 逻辑master项目是父项项目,但它作为兄弟文件夹存在,以便Eclipse可以更加适应它。
  • Gradle包含一个内置的Eclipse插件,它允许从依赖性信息(包括项目间依赖性)为每个项目生成Eclipse设置文件。它适用于简单的项目,对于更复杂的项目,Gradle允许您修改设置文件,因此您可以完成所有工作。从这里您有两种选择:
    • 不要将Eclipse设置文件存储在存储库中,并且每次执行新的检出操作时都会调用生成任务(我更喜欢此选项)。
    • 告诉摇篮到使用自定义变量,使之产生能够签入到存储库的通用设置文件。您只需要在依赖关系或其他配置更改时运行生成任务。
  • (可选)这有点棘手,但您可以让Gradle解析现有项目ivy.xml文件并从那里设置依赖关系。我已经取得了一些成功,但我建议将依赖关系转换为Gradle格式,以获得更大的灵活性。
  • 连续构建系统与Gradle集成得很好(与蚁相同)。如果你使用Jenkins(Hudson),那么就有一个Gradle插件。

使用Gradle的优势在于它可以很好地扩展,并且可以在不费力的情况下同时支持其他IDE(如IntelliJ或Netbeans)(除非您有许多疯狂的自定义设置)。一个优点和缺点是Gradle是一个强大的构建系统,需要学习Groovy和Gradle DSL,这可能需要一些时间才能获得。此外,文档非常棒。

Gradle有一个非常活跃的社区,其唯一目的就是解决这类问题。

希望这会有所帮助,祝您好运!

+0

感谢@rodion--决定给Grails一个旋风。感谢您提供有用的信息。当我完成调查时,我会更新这个主题 – anand 2012-02-06 07:52:29

相关问题