第一章:Maven简介
没有人会抵触优秀的技术,除非缺乏文档、学习成本高。
构建(build):包括编译、单元测试、文档生成、打包、部署等。
Maven是构建工具、依赖管理工具、项目信息管理工具。
Make和Ant是过程式的,Maven是声明式的;Make不易实现跨平台构建,Ant没有依赖管理。
第二章:Maven的安装和配置
第三章:Maven使用入门
第四章:背景案例
第五章:坐标和依赖
第六章:仓库
第七章:生命周期和插件
第八章:聚合与继承
第九章:使用Nexus创建私服
第十章:使用Maven进行测试
跳过,学习意义不大,对小公司来说时间成本过高,不如直接按照测试用例文档进行自测,大公司在自测后会有单独的测试环境和测试团队来进行测试。
第十一章:使用Hudson进行持续继承
持续集成(Continuous Integration):快速且高频率地自动构建项目的所有源码,并为项目成员提供丰富的反馈信息。
持续集成示例:
集成的步骤:
- 持续编译。与版本控制系统(如Git)集成,自动触发编译。
- 持续数据库集成
- 持续测试
- 持续审查。与代码检查系统集成。
- 持续部署
- 持续反馈
集成的好处:尽早暴露问题、减少重复操作、简化项目发布、建立团队信息。
第十二章:使用Maven构建Web应用
跳过,与主流的 Spring Boot 的项目骨架脱节太多。
第十三章:版本管理
跳过。
第十四章:灵活的构建
Maven属性:内置属性、POM属性、自定义属性、Settings属性、Java系统属性、环境变量熟悉。
自定义Maven属性:变量定义在<properties>标签里,然后通过${}调用。
使用示例:将Spring的版本抽象出来统一管理;聚合项目中子模块直接调用父的groupId和version。
profile示例(开发环境的数据库配置)(可写在POM、Settings):
<profiles>
<profile>
<id>dev</id>
<properties>
<db.driver>com.mysql.jdbc.Driver</db.driver>
<db.url>jdbc:mysql://localhost:3306/test</db.url>
<db.username>dev-username</db.username>
<db.password>dev-password</db.password>
</properties>
</profile>
</profiles>
激活profile:
- 命令行激活。在命令行尾部加上 -Pdev。
- Settings文件显示激活。
<settings>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
</settings>
- 系统属性激活。本质上和命令行激活一样。
- 操作系统环境激活。(这个方法应该是最常用的,服务器和开发机OS一般都是不一样的)
<profiles>
<profile>
<activation>
<os>
<name>Windows XP</name>
<family>Windows</family>
<arch>x86</arch>
<version>5.1.2600</version>
</os>
</activation>
</profile>
</profiles>
- 文件存在与否激活。和上面的类似,在<activation>标签里配置<file>标签,<file>标签里配置<missing>标签或<exists>标签。
- 默认激活。和上面的类似,在<activation>标签里配置<activeByDefault>标签,且值为true。
命令行查看:通过$mvn help:all-profiles和$mvn help:active-profiles来查看所有profile和已激活的profile。
第十五章:生成项目站点
跳过,功能一般,用不到。
第十六章:m2eclipse
跳过,目前主流用IDEA。
第十七章:编写Maven插件
跳过,前人编写的插件能满足几乎100%的业务需求了,不用重复造轮子。
第十八章:Archetype
跳过,项目骨架不要标新立异,按照规范来,减少人员学习成本。