Maven最佳实践
以前在iteye上写过一篇Maven的文章,在这里,写了这么多是因为真的越用越喜欢这个构建工具,越用越发现自己越觉得对这个工具了解的太少。唯有记录。
此次算是记笔记吧,很早之前看过这本书(豆瓣地址),最近忙着写项目,又体会了许多东西,重读算是温习。
- Maven可以翻译成“知识的积累”或者“专家”、“内行”。
- 书上说早上发现错误,笔者认为描述很符合Maven,但是不是胆子太大了把build failure留到早晨?
- 如果项目多的话装一个M2Eclipse还是很有必要的(自己体会)。
- 当编译需要很大内存时可以加上参数MAVEN_OPTS -Xms128m -Xmx512m
- 拷贝一份settings.xml到~/.m2目录下
- groupId定义了项目在哪个组,通常为org.liubey.myapp,artifactedId定义了项目在组中唯一的ID,通常为myapp-common,推荐将实际项目加上模块名myapp-common
- 一个测试主要包含三个步骤,分别为 准备测试类和数据 执行要测试的行为 检查结果
- maven-compile-plugin设置jdk1.5
- 生产可运行的jar文件需要借助maven-shade-plugin
- 使用内置命令生产标准项目mvn archetype:generate
- 将Maven标准项目变成web项目 -Dwtpversion=2.0
- Maven的坐标元素包括groupId/artifactedId/version/package/classifier(不能直接定义,附加插件帮助) 构成唯一坐标标识
- 传递性依赖。依赖调节的方式主要有第一原则:最短路径,第二:第一声明
- 排除依赖使用exclusions,声明只需要groupId和artifactId()
- 仓库分为中央仓库 私服仓库 本地仓库
- 跳过测试编译和运行单元测试 -Dmaven.test.skip=true 只跳过单元测试运行-DskipTests
- Profile过滤真滴很爽。