Rap*_*vet 6 java eclipse maven-2 ivy gradle
我在一个小团队(3人)的几个模块(目前大约10个)工作.构建版本的编译,集成和管理变得越来越乏味.我正在寻找一个好的构建/集成工具来替换/完成Ant.
以下是我们当前开发环境的描述: - 几个模块取决于每个第三方JAR - 一些可能导出JARS,一些导出WARS,一些导出独立,可运行JARS(使用Fat-Jar) - 所有这些Javadoc - 我们使用eclipse - 每个模块的自定义Ant脚本.eclipse配置和Ant脚本之间的许多冗余信息.例如,对于独立的Fat-JAR,我们列出了所有的递归依赖关系,而理想情况下,它可以清楚地从eclipse配置中导入. - 源代码使用SVN进行版本控制
以下是我想要的完美集成工具:
自动化模块的发布和版本控制.理想情况下,集成工具应检测是否需要新版本.例如,如果我想要发布依赖于项目B的项目A,并且如果我在本地对项目B进行了小的更改,那么集成工具应该首先发布新版本的B并根据它.
与eclipse强烈集成,以便它可以从其配置中获取模块和第三方库之间的依赖关系.顺便说一下,我想继续用eclipse配置构建路径而不更新其他一些".xml"的东西.我看到Gradle可以从其配置生成eclipse项目文件,但对应的将是很好的.
在本地项目上启用"实时"和透明的开发.我的意思是我经常在开发主要/"叶子"项目时对核心/公共项目进行小的更改.我希望我对核心项目的更改立即可用于项目,而无需发布(甚至本地)我的核心项目的JAR.
将我的模块的所有版本存储在外部服务器上.最简单的(共享文件夹/ Webdav)将是最好的.一个包含模块列表和交付工件的漂亮网页也很棒.
我环顾四周寻找很多东西.从Ant4eclipse(将Eclipse配置集成到我的Ant脚本中)到Maven/Ivy/Gradle工具.
我有点困惑.这是我到目前为止所理解的: - Maven是一个伟大的/大工具,但有点僵硬,迫使你屈服于它的结构和概念.它基于描述而不是脚本.如果你走出这条道路,你必须开发自己的插件. - 常春藤不如maven强大,它处理的东西少,但更灵活. - Gradle介于两者之间.这是通用的.它支持脚本以及"基于约定"的配置.它集成了Ant并扩展了它.
所以在这一点上,我正在寻找真实用户的实际推荐.你用什么工具?怎么样 ?你有和我一样的需求吗?它是否会缓解您的生活或妨碍您的生活?
是否有一些用例或工作区框架的示例,我可以将其作为起点来查看这些工具的功能?
对不起这封邮件的长度.并提前感谢您的建议.
亲切的问候,
拉斐尔
自动化模块的发布和版本控制 (...)
版本控制和存储库的概念是 Maven 内置的,它们可以适合这里。
Maven 支持SNAPSHOT 依赖关系。使用快照时,Maven 将在您运行构建时定期尝试从存储库下载最新的可用快照。SNAPSHOT 通常在项目正在积极开发时使用。
Maven 2 还支持版本范围(我并不真正推荐它们,但那是另一个故事),例如允许将 A 配置为依赖于[4.0,)B 的版本(任何大于或等于 4.0 的版本)。如果您构建并发布了 B 的新版本,A 就会使用它。
与 eclipse 紧密集成
m2eclipse插件提供与 Eclipse 的双向同步。
实现本地项目的“实时”和透明开发。
m2eclipse插件支持“工作空间解析”:如果项目A依赖于项目B并且项目B在工作空间中,则可以将A配置为依赖于B源而不是B.jar(如果我不这样做,这是默认模式错误的)。因此,B 源的更改将直接可见,无需构建 B.jar。
将我的模块的所有版本存储在外部服务器上。
正如前面提到的,这实际上是 Maven 的一个中心概念(你甚至没有选择),并且支持通过 file:// 或 dav:// 进行部署。
总而言之,Maven(可能)不是唯一的候选者,但我确信它适合:
但 Maven 有一些学习曲线。
| 归档时间: |
|
| 查看次数: |
1767 次 |
| 最近记录: |