1)pre-clean 执行一些清理前需要完成的工作。 2)clean 清理上一次构建生成的文件。 3)post-clean 执行一些清理后需要完成的工作。
Maven核心功能之”构建“的所有需要执行的步骤
7) compile 编译项目的主源代码
13)test-compile 编译项目的测试代码
17)package 接受编译好的代码,打包成可发布的格式
23)deploy 将最终的包复制到远程仓库,供其他开发人员和Maven项目使用
建立和发布项目站点
命令执行逻辑:首先会得到该阶段所属生命周期,从该生命周期中的第一个阶段开始按顺序执行,直至该阶段本身。不同声明周期的命令可同时执行。 比如:mvn clean package
默认范围
eg: jsp-api.jar servlet-api.jar(tomcat容器中有这两个jar包,如果打包了这两个到war包中,会和tomcat冲突。
eg: JDBC驱动包
eg: junit
Compile | Provided | Runtime | Test | |
---|---|---|---|---|
编译 | Y | Y | ||
测试 | Y | Y | Y | Y |
打包 | Y | Y |
引入一个Jar包可能会引入其他Jar,这就是依赖传递。 依赖传递或者导入版本不同的jar包时会出现“ 版本冲突 ”的问题,解决办法:
父工程版本锁定
版本锁定只是起到指定依赖版本的作用,并不会导入依赖.
<properties> <spring.version>4.2.4.RELEASE</spring.version> </properties> ......... <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-bean</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </dependencyManagement> 复制代码
依赖的优先原则(次要)
排除依赖(不常见,百度即可)