以下是我们当前开发环境的描述: - 几个模块相互依赖,以及第三方JAR包 - 一些模块可能导出JARS,一些模块导出WARS,一些模块导出独立可运行的JARS(带有Fat-Jar) - 所有模块都有Javadoc文档 - 我们使用Eclipse - 每个模块都有自定义的Ant脚本。Eclipse配置和Ant脚本之间存在许多冗余信息。例如,对于独立的Fat-JAR,我们列出了所有递归依赖项,而理想情况下,它应该可以从Eclipse配置中清楚地导入。 - 源代码使用SVN进行版本控制
以下是我想要完美整合工具为我完成的事情: - 自动化模块的发布和版本控制。理想情况下,集成工具应该检测是否需要新版本。例如,如果我想要发布依赖于项目B的项目A,并且如果我在本地对项目B进行了小修改,则集成工具首先应该发布一个新版本的B,然后基于它制作A。 - 与Eclipse强烈集成,以便从其配置中获取模块和第三方库之间的依赖关系。顺便说一下,我希望继续使用Eclipse配置构建路径,而不更新其他“.xml”文件。我看到Gradle可以从其配置生成Eclipse项目文件,反过来也很好。 - 在本地项目上实现“实时”和透明的开发。我的意思是,我经常在开发主要/“叶子”项目时对核心/共同项目进行小修改。我希望我的核心项目的更改立即对叶子项目可用,而不需要发布(即使是本地)我的核心项目的JAR包。 - 将所有版本的模块发布存储在外部服务器上。最简单的方法(共享文件夹/Webdav)是最好的。一个漂亮的网页,列出模块和交付的工件,也会很棒。
我已经尝试了许多工具,从Ant4eclipse(将Eclipse配置集成到我的Ant脚本中)到Maven / Ivy / Gradle工具。
我有点困惑。 以下是我目前所理解的情况: - Maven是一个伟大/强大的工具,但有些死板,需要遵循其结构和概念。它基于描述而不是脚本。如果你走出了这条路,你就必须开发自己的插件。 - Ivy比Maven弱一些,处理的东西更少,但更加灵活。 - Gradle介于两者之间。它是通用的。它既支持脚本又支持“惯例”配置。它集成了Ant并扩展了它。
目前我正在寻找来自真实用户的实际见证。
你用什么工具?怎么用?你有与我相同的需求吗?
这些工具是让你生活更轻松还是更加复杂了呢?
是否有一些使用案例或者工作空间骨架可以作为起点,以了解这些工具的功能?
对于信息的长度我感到抱歉。
非常感谢您的建议。
此致敬礼,
Raphael