1、 Maven是用来管理项目依赖的工具
2、 Maven的主配置文件是POM文件,要系统完整全面学习POM文件,可以查看XSD文件[],看完了这个我对POM文件中所有的标签和元素有了一个完整的了解
备注:看xsd文件的时候,最好采用某种IDE等工具,这样才能有层次地看这个文档,否则比较杂乱的感觉
3、 POM文件可以处理的参数有几部分:
内置的元参数:比如${basedir}
项目参数:比如${project.build.directory}
本地设置参数:比如${settings.localRepository}
本地系统的环境变量参数:比如${env.M2_HOME}
Java系统参数:比如${jdk_home}
父POM的变量:比如${project.parent.XXX}
自定义的参数:
<project>
<properties>
<my.filter.value>hello</my.filter.value>
</properties>
</project>
那么下次就可以用${my.filter.value}来引用hello这个值了
4、在编译一个pom项目时,我本来有几个方面的参数困惑
1)在有Profile的时候,它可以选择某个Profile的配置文件作为工作文件
2)在3中提到的参数,在编译完成之后的POM中,都被替换为实际的值
3)如果配置了Resource标签,并且允许进行参数替换,那么将Resource目录下的文件复制到target下时,会进行参数值替换
4)借用“properties-maven-plugin”等plugin,可以在pom中直接读取property文件的内容
用mvn help:effective-pom命令,可以查看最终生成的pom文件
5、POM有lifecycle,phase,goal的概念,lifecycle由phase组成,phase的具体功能由goal完成,goal来自于插件,一个phase可以绑定0到多个goal,goal也可以绑定到0或多个phase,一句话说, phase与goal的关系是多对多关系
用mvn phase goal的形式,可以手动进行maven命令的操作,比如
mvn clean dependency:copy-dependencies package
执行clean这个phase,然后dependency:copy-dependencies这个goal,最后再package这个phase