zoukankan      html  css  js  c++  java
  • 选择,构建工具

    http://dreamhead.blogbus.com/tag/gradle/

    选择,构建工具

    一个新的Java项目行将开始,自动化是要纳入考量的一项重要工作,于是,构建工具的选型提上了日程。

    固然,我可以不明就里从Java世界Ant和Maven两大天王中,择一从之,但稍微整理一下内心的需要,也不会糊涂僧断糊涂案。作为构建工具,基本构建功能自然是必备的,此外,我还有一些非分之想。

    在这个Convention over Configuration的年代,要是每次都从头开始手工打造一切,出门都不好意思和人打招呼。Maven给Java世界打了一个很好的样,它的目录结 构有约定,就是那个src/main/java⋯⋯,它的构建过程有约定,就是编译、测试、打包的那套东西。感谢Maven,Java世界的很多构建工具 都遵循了同样的约定,这让我有机会在不改变目录结构的情况下,尝试各种构建工具。你知道我在说什么了,Ant稍微有些原始。

    依赖管理不可或缺,看看人家Ruby,gem install以及bundle install。其实,从Ruby世界得到的信息是,这不是构建工具的一亩三分地,但谁让它跟构建紧密相关,每次想到,我要自己这找一个jar包,那找一 个jar包,就纠结得我痛苦万分。幸好,Maven拯救了Java程序员,只要在脚本里定义好自己需要的库,于是,一大批jar就从天而降了。有了 Maven的基础设施,许多构建工具也借得东风,比如ivy,它就是定义自己的需求,拿Maven的jar包。

    划分工程。把所有代码都写在一个工程里,生成一个jar/war/ear包,N年前我是这么做的。当我为一个把所有一切都混杂一起的项目编写web service时,我被恶心得够呛。于是,我决定,我的下一个Java项目一定要把domain和web分开,这样,别人给它写web service时,根本不必理会web层的存在,我相信,至少这一点上,他会感谢我的,也许这个人就是未来的我。

    环境区分,去过Rails环境,我才知道,把不同的配置分开是多么幸福的一件事。在开发环境下,我可以用一套配置,在部署环境下,我用另外一套配置,楚河汉界,我就不必费心在代码里想各种各样奇怪的组合。

    IDE集成。如果你用过maven idea:idea,你就知道我说什么了。通过构建工具,我可以生成对应的IDE工程,直接在IDE里打开,然后就开始写代码了。曾几何时,开始写代码时,我需要花上小半天时间配我的IDE,尤其是我想有多个工程的时候。

    最重要的是,扩展能力,当我希望表现的个性一点时,我可以。从前面的种种,你可以看出我多么喜欢Maven了,但Maven就是死在这里了。我非常同意 Maven是能够扩展的,但它着实不是给老百姓扩展的。要扩展它,我必须成为Maven的专家,对于Maven精心设计的插件机制有足够的了解。可惜,这 不是我的努力方向,我还是喜欢一些更符合直觉的东西。

    总结一下我的需求,说白了,就是能够快速开始,不把自己玩死。

    有了需求,就不难发现,天王固然是天王,但毕竟老了。一些新星已然崭露头角,如果你已厌倦Java世界整日与XML为伍的生活,还有个好消息,新星们选择 了另外的表达方式。假如你喜欢ruby,buildr是个不错的选择,groovy若是你的最爱,那就去找gradle吧!

    新星毕竟是新星,遇到问题时,比起可以随手找到的Ant Task和Maven Plugin,新星们的解决方案寥寥无几,当然一个还好的消息是,新星们都可以集成天王的资产,比如调用Ant Task,这会让我们不安的内心稍稍平静一些。



  • 相关阅读:
    【算法学习笔记】76.DFS 回溯检测 SJTU OJ 1229 mine
    【算法学习笔记】75. 动态规划 棋盘型 期望计算 1390 畅畅的牙签盒(改)
    【算法学习笔记】74. 枚举 状态压缩 填充方案 SJTU OJ 1391 畅畅的牙签袋(改)
    【算法学习笔记】73.数学规律题 SJTU OJ 1058 小M的机器人
    【算法学习笔记】72.LCS 最大公公子序列 动态规划 SJTU OJ 1065 小M的生物实验1
    【算法学习笔记】71.动态规划 双重条件 SJTU OJ 1124 我把助教团的平均智商拉低了
    【算法学习笔记】70.回文序列 动态规划 SJTU OJ 1066 小M家的牛们
    【算法学习笔记】69. 枚举法 字典序处理 SJTU OJ 1047 The Clocks
    【算法学习笔记】68.枚举 SJTU OJ 1272 写数游戏
    【算法学习笔记】67.状态压缩 DP SJTU OJ 1383 畅畅的牙签袋
  • 原文地址:https://www.cnblogs.com/lexus/p/2197843.html
Copyright © 2011-2022 走看看