场景:
平时在进行maven项目打包时对于生命周期中的一些命令的详细区别并不是很清楚,虽然也能正常的进行工作但,还是想着对这个部分做一点学习,毕竟这样在出现问题的时候就能更快找到问题的原因。
除了坐标依赖以及仓库以外,另外2个核心的概念就是生命周期和插件,在maven的使用中,用命令行的输入往往就对应着生命周期
比如mvn package就表示执行默认生命周期阶段的package,maven生命周期本身是本身不做任何工作的,其实际任务(如编译源代码)都是由插件来完成的,这种设计和设计模式中的模板设计模式非常相似,
maven为绝大多数构建步骤编写并绑定了默认插件(当然也可以自己配置或编写插件),虽然大多数时候用户感觉不到插件的存在,但实际上编译是由maven-compiler-plugin完成的
代码语言:javascript复制<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>