项目自动化类型
1、按需构建 2、触发构建 3、预定构建。
任务A依赖于任务B,语句A依赖于语句B,方法A依赖于方法B,类A依赖于类B,A---->B, 其实是在说,A的输出需要作为B的输入,B的输出需要把A的输出作为B的输入。
构建工具
Apache Ant
由三个基本元素组成:一个project,多个target、可用的task。Ant没有对如何定义构建的结构强加任何限制,让使用一个现有的项目结构变得简单。
缺点:
1)使用xml作为构建逻辑的定义语言相比其他更简明的定义语言,会导致构建脚本国语臃肿和啰嗦。
2)负责的逻辑会导致又长又难以维护的构建脚本。
3)Ant没有提供任何指导来告诉你如何建设项目。常用功能失常被到处拷贝。
Apache Maven
约定由于配置,为项目配置和行为提供了有意义的默认值。如果项目遵循默认值,那么只需要写几行xml就可以建立一个完整的项目。
可以通过开发定制的插件来拓展。
基于构建声明周期,每个项目确切指导有哪些步骤去执行构建、打包和发布应用程序。
1)编译源代码 2)运行单元测试集成测试 3)组装工件 4)强工件部署都本地仓库 5)强工件发布到远程仓库
所需要的外部依赖库在构建脚本中定义。运行时,声明的类库和它们的传递依赖会由Maven的依赖管理器下载,保存到本地缓存中。Maven的预配置从Maven Central下载依赖,接下来构建会从本地缓存中重用已存在的工件,不用再连接Maven Central。
Maven的缺点:
1)默认的结构和声明周期,常常会太过限制,有时候不适合项目需要。
2)为Maven写定制的拓展过于累赘,需要学习Mojos(Maven内部拓展API),如何提供一个插件描述符,以及相关的特殊注解,提供扩展所需要的数据。