当年只有ant, 后来出现了marven, 曲线老陡峭了. java里面这类大家伙, 最后都难逃一死. 相反某些小而美可以活下来. 比如velocity就是从turbine的尸体上面遗留下来的. 当然, turbine是个大尸体, 遗留了很多类似的东西.

部署工具

ant marven gradle

配合tomcat, 就用这三样, 其实和编辑器没关系.

比较中肯的评论

构建工具的演化: https://zhuanlan.zhihu.com/p/24429133

https://zhuanlan.zhihu.com/p/24429133

  1. ant比较直白, java一开始没有make, 必须手工搞, 类似, ant出现了.
  2. maven解决依赖包的问题,
    1. 把依赖包都下载并且摆放到指定目录, 是ant的思路.
    2. maven不需要, 维护了一套全局的包名, 可以直接用, 还会自动下载.
    3. 然后, 固定了一套生命周期. 这个叫: 预设大于配置.
    4. 故意把简单的事搞复杂, 是maven这货的思路, 当初就觉得学习曲线很陡峭.
    5. 有一句话深得我心: ant太方便了, 所以发明了marven
  3. gradle
    1. 改回了ant的机制. 直接定义步骤.
    2. 使用了依赖包, 自动帮你解决依赖问题.
    3. 用了groovy作为配置文件, 抛弃恶心的xml.
对比
  1. ant和marven都用xml, 虽然ant的xml比较容易理解.
  2. gradle(groovy)据说带领我们进入了下一个阶段.
//这是一个真是的gradle配置文件
apply plugin: 'java'
apply plugin: 'checkstyle'
apply plugin: 'findbugs'
apply plugin: 'pmd'
 
version = '1.0'
 
repositories {
    mavenCentral()
}
 
dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: '1.3'
}

参考资料

  1. http://gwiki.cn
  2. 10个工具: https://www.codementor.io/learn-programming/software-developer-tools
  3. 喝杯茶的功夫搞定工作环境: https://www.codementor.io/slavko/configuring-development-environment-ansible-ubuntu-14-04-du107nl5e

maven vs gradle

  1. 辣眼睛的页面: https://gradle.org/maven-vs-gradle/
  2. gradle guide: https://docs.gradle.org/current/userguide/userguide_single.html
  3. 2014年的对比: https://technologyconversations.com/2014/06/18/build-tools/

gradle

所有的文档都建议使用gradle, 这货最有价值的就是抛弃了xml.

  1. yaml
  2. groovy
  3. 可以用阿里云加速: https://www.zhihu.com/question/20641836
  4. 依赖管理: https://www.zhihu.com/question/43564322
  5. 通俗: https://www.zhihu.com/question/30432152

jenkins

  • 构建调度平台, 神奇了, 还有这玩意, 不是有了maven吗? 还不够吗?

  • cI 持续集成的意思是每次发布都自动测试.

  • 我的天啊, java要把git劈成多少瓣啊.

  • Jenkins其实就是大的框架集,可以整个任何你想整合的内容,实现公司的整个持续集成体系!

    如:自动化,性能,打包,部署,发布&发布结果自动化验证,接口测试,单元测试

作为公司的移动开发老鸟来回答你的 问题吧哈哈哈哈

从长远来看,重复单一易出错的操作将慢慢被机器所取代,具体到软件开发中就是,每次打包送测等操作是可以交给机器去自动执行的。以前打包给测试的流程是,测试拿了好几个手机过来,开发一一安装,然后送给测试慢慢测试。使用了持续集成之后将变成,开发本地提交代码,Jenkins等持续集成工具监测到代码变化,自动编译打包,生成开发包,测试直接拿着开发包安装测试即可。

Jenkins做的操作其实很简单,它只是将我们平时做的每一步重复的操作自动化了而已。因此,iOS中Jenkins要做的分为以下几步:1.拉取远端代码2.由于某种条件触发后开始自动编译,打包3.将生成的ipa文件上传到指定位置,供测试下载测试这三步中,每一步Jenkins什么都没做,它只是调用了Mac中的一些工具,具体的说就是使用了命令行工具。有的做成了可视化的插件,有的还是要通过自己写命令来实现。典型的就是编译和打包的命令是调用xcodebuild命令。

https://www.zhihu.com/question/24826608

关于jenkins的总结陈词: 这货和后端没啥关系, 主要是给测试用的.

git的儿孙们

  1. maven ant gradle
  2. jenkins
  3. 发布控制工具vela这种