Javamake曲折的坑路
当年只有ant, 后来出现了marven, 曲线老陡峭了. java里面这类大家伙, 最后都难逃一死. 相反某些小而美可以活下来. 比如velocity就是从turbine的尸体上面遗留下来的. 当然, turbine是个大尸体, 遗留了很多类似的东西.
部署工具
ant marven gradle
配合tomcat, 就用这三样, 其实和编辑器没关系.
比较中肯的评论
构建工具的演化: https://zhuanlan.zhihu.com/p/24429133
https://zhuanlan.zhihu.com/p/24429133
- ant比较直白, java一开始没有make, 必须手工搞, 类似, ant出现了.
- maven解决依赖包的问题,
- 把依赖包都下载并且摆放到指定目录, 是ant的思路.
- maven不需要, 维护了一套全局的包名, 可以直接用, 还会自动下载.
- 然后, 固定了一套生命周期. 这个叫: 预设大于配置.
- 故意把简单的事搞复杂, 是maven这货的思路, 当初就觉得学习曲线很陡峭.
- 有一句话深得我心: ant太方便了, 所以发明了marven
- gradle
- 改回了ant的机制. 直接定义步骤.
- 使用了依赖包, 自动帮你解决依赖问题.
- 用了groovy作为配置文件, 抛弃恶心的xml.
对比
- ant和marven都用xml, 虽然ant的xml比较容易理解.
- 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'
}
参考资料
- http://gwiki.cn
- 10个工具: https://www.codementor.io/learn-programming/software-developer-tools
- 喝杯茶的功夫搞定工作环境: https://www.codementor.io/slavko/configuring-development-environment-ansible-ubuntu-14-04-du107nl5e
maven vs gradle
- 辣眼睛的页面: https://gradle.org/maven-vs-gradle/
- gradle guide: https://docs.gradle.org/current/userguide/userguide_single.html
- 2014年的对比: https://technologyconversations.com/2014/06/18/build-tools/
gradle
所有的文档都建议使用gradle, 这货最有价值的就是抛弃了xml.
- yaml
- groovy
- 可以用阿里云加速: https://www.zhihu.com/question/20641836
- 依赖管理: https://www.zhihu.com/question/43564322
- 通俗: 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的儿孙们
- maven ant gradle
- jenkins
- 发布控制工具vela这种