保持Eclipse项目依赖项与外部构建系统同步

时间:2012-02-03 13:26:52

标签: eclipse build gradle

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

问题:是否有一个工具允许维护一组依赖项,Eclipse可以使用这些依赖项以及像ant这样的外部构建系统? 我听说过Gradle但从未使用过它。在这种情况下它会有意义吗?我很确定Maven不会为所需要的东西工作 典型的工作流程应该是:
1.开发人员继续按目前的方式工作 - 随意创建和更改Eclipse项目依赖项,并使用默认的Eclipse构建器在本地进行编译和测试。
2.存在一些机制,通过这些机制可以将这些依赖关系传递到外部构建系统,如ant和每次签入时触发的外部连续构建。
感谢您的反馈 - 谢谢!

2 个答案:

答案 0 :(得分:2)

我们在使用Gradle解决类似问题方面非常成功。这是设置的大纲

  • 每个项目都包含一个build.gradle,用于定义项目特定的依赖关系和任务(甚至可能为空)。
  • 一个特殊的master项目包含build.gradle,它为子项目设置公共依赖项和任务,和/或注入与一组子项目相关的设置。
    • 逻辑上master项目是项目,但它作为兄弟文件夹存在,以便Eclipse可以更加熟悉它。
  • Gradle包含一个内置的Eclipse插件,允许从依赖项信息(包括项目间依赖项)为每个项目生成Eclipse设置文件。它适用于简单的项目,而对于更复杂的项目,Gradle允许您修改设置文件,因此您几乎可以做任何事情。从这里你有两个选择:
    • 不要将Eclipse设置文件存储在存储库中,并在每次执行新签出时调用生成任务(我更喜欢此选项)。
    • 告诉Gradle使用自定义变量使其生成可以签入存储库的通用设置文件。然后,您只需在依赖项或其他配置更改时运行生成任务。
  • (可选)这有点棘手,但您可以让Gradle解析现有项目ivy.xml文件并从那里设置依赖项。我在这方面取得了一些成功,但我建议将依赖项转换为Gradle格式以获得更大的灵活性。
  • 持续构建系统与Gradle很好地集成(与ant相同)。如果您使用的是Jenkins(Hudson),则有一个Gradle插件。

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

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

希望这有帮助,祝你好运!

答案 1 :(得分:0)

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