认识mavenhtml
- 约定优于配置
- 简单
- 测试支持
- 构建简单
- 插件丰富
- 持续集成
配置setting.xmlspring
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>ui</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>osc</id>
<mirrorOf>central</mirrorOf>
<url>http://maven.oschina.net/content/groups/public/</url>
</mirror>
<mirror>
<id>osc_thirdparty</id>
<mirrorOf>thirdparty</mirrorOf>
<url>http://maven.oschina.net/content/repositories/thirdparty/</url>
</mirror>

pom.xmlapache
- groupId com.gupaoedu
- packaging 打包方式 默认是jar
- version 版本号
- artfactId 功能命名
- dependencyManagement
- 最好只出如今父pom
- 统一版本号
- dependency的声明 (子POM里用到再引)
- Dependency
- Scope(使用场景)
- compile 编译 (默认,都用本范围,包会打的很大) 例如spring-core
- test 测试
- provided编译,不会打包 例如 servlet
- runtime运行时才有效,编译时不用的包(就是不须要编译的包) 例如JDBC驱动实现
- system 本地一些jar,不在maven的中央仓库 例如短信jar
- 依赖传递(子pom依赖于父pom,若是父pom已经引用了某个jar包,子pom不须要再引用)
- 查看pom tree命令: mvn dependency:tree > d.txt

依赖仲裁tomcat
- 最短路径原则(依赖节点数少的)
- 加载前后原则(使用后加载,书写顺序)
使用versions-maven-plugin插件统一修改多个moudle版本号maven
exclusionside
- 排除包(解决冲突的时候使用,排除掉冲突的jar包)
生命周期测试
- lifecycle,包含多个phase,包含多个goals
- A Build Lifecycle is Made Up of Phases(阶段)
- A Build Phase is Made Up of Plugin Goals(咱们写的插件都是goals,须要挂在maven的Phase 下,好比package、install )
- 以下所示,goals挂在 install上面

- Maven作的任何事情均可以是一个plugin
- 每个阶段都会运行以前的全部阶段

版本管理网站
- 1.0-SNAPSHOT(测试版本,远程SNAPSHOT变化,本地仓库不会随时刷新,先删除本地,再去拉一次,或以下 -U强拉)
- mvn clean package -U (强制拉一次)
- 主版本号.次版本号.增量版本号-<里程碑版本>
- 1.0.0-RELAESE(不要发布SNAPSHOT,由于能够被替换,release版本,必须升级版本,不会覆盖)
经常使用命令ui
- Compile(编译,存在于maven内置插件里面,默认就带的)
- clean 删除target/ (文件夹下的全部东西清理)
- test test case junit/testNG(运行这俩相关的程序)
- package 打包(打包依据<packaging>pom</packaging>)
- install 把项目install到local repo
- deploy 发本地jar发布到remote
插件this

maven插件官网 或者 mojo插件网站
- findbugs 插件:静态代码检查
- versions 统一升级版本号
- mvn versions:set -DnewVersion=1.1
- source插件 打包源代码
- assembly 打包zip、war(with dependency这样全部用到的jar包都会打到你的包里面)
- tomcat7(maven的tomcat插件,不用在另外下载)
自定义插件
- 打包方式:<packaging>maven-plugin</packaging>
