所有Java Build工具都有什么用?

ces*_*sar 32 java ant build-automation maven-2 buildr

使用ant,maven和buildr有什么意义?不会在eclipse或netbeans中使用构建工作正常吗?我只是好奇扩展构建工具的目的和好处是什么.

Ani*_*udh 27

  • 依赖关系管理:构建工具遵循组件模型,该组件模型提供有关查找依赖关系的位置的提示.在Eclipse/Netbeans中,您必须依赖于JAR,并且您并不真正知道此JAR是否已更新.使用这些构建工具,他们"了解"依赖关系中的更新(通常是因为与源代码控制存储库的良好集成),重新计算传递依赖关系并确保始终使用最新版本构建所有内容.

  • 访问控制:除了类级访问控制之外,Java没有更高的抽象.使用这些构建工具,您可以准确指定要依赖于哪些项目,并以更高的粒度级别控制可见性和访问权限.

  • 自定义控件:Eclipse/Netbeans构建始终构建JAR文件.使用自定义构建机制,如果您愿意,可以使用额外的元数据信息构建自己的自定义(公司内部)存档.

  • 插件:构建工具附带了各种插件,可以在构建期间执行各种操作.从生成Javadocs等基本内容到运行测试和获取代码覆盖率,静态分析,生成报告等更重要的内容.

  • 传输:一些构建系统还管理存档的传输 - 从开发系统到部署或生产系统.因此,您可以配置传输路由,计划等.

看看CruiseControlHudson等一些持续集成服务器.此外,Maven功能页面提供了一些您想知道的内容.

  • 好吧,如果你正在做一个个人项目,那么可能是一个日食构建就足够了.但是,如果您是组织的一部分并且正在构建一个组件,而该组件是较大系统的一部分,那么您的组件将依赖于系统中的其他组件 - 这些组件也在不断开发中.这些是您的依赖项. (4认同)

Fre*_*rik 12

除了所有其他答案.我保持项目可构建而不被迫使用NetBeans或Eclipse的主要原因是它使设置自动(和连续)构建变得更加容易.

设置一个以某种方式启动eclipse的服务器,从存储库更新源代码,构建所有内容,发送带有结果的邮件并将输出复制到磁盘上最后50个构建的某个位置,这将相当复杂(相比之下)存储.