maven记录
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。
配置maven环境:
我的电脑-----属性----高级-----环境变量-----环境变量-----新建
变量名:M2_HOME
变量值:D:\maven\apache-maven-3.3.3
配置path
找到path 在环境变量值尾部加入:;%M2_HOME%\bin;---前面注意分号
然后cmd dos命令执行下 mvn -v 如下图代表成功

maven基础知识:
1 坐标
Maven坐标包括groupId、aftifactID、version、packageing
Groupid:定义当前maven项目隶属的实际项目
aftifactId:该元素定义项目中一个maven项目(模块),一般使用实际项目名作为前缀,再加上模块名称。
Version:定义maven项目当前所处的版本。
Packageing:打包方式。默认jar,Web项目war。
2 依赖
Dependency可包含的元素:
groupId、artifactId、version:依赖的基本坐标
scope:依赖的范围
compile: 编译依赖(默认)。编译、测试、运行都有效
test:测试依赖范围。只在测试时有效。编译主代码和运行项目时将无法使用
provided:已提供的依赖范围,编译和测试有效,但是运行无效,运行环境默认提供该依赖,如servlet-api。
exclusions:排除依赖项
3 仓库
3.1 本地仓库
默认路径为{currentuser}/.m2/repository
可在setting文件中设置
<localRepository>/usr/local/repostitory</localRepository>
3.2 远程仓库
4 生命周期
4.1 Clean
4.1.1 Pre-clean
4.1.2 Clean:清理上一次构建生成的文件
4.1.3 Post-clean
4.2 Default
Process-sources:处理项目主资源文件。一般来说就是对src/main/resources:目录的内容进行变量替换,复制到项目输出的主classpath目录下
Compile:编译主代码,编译src/main/java目录下java文件输出至classpath下
Test-complile:编译项目的测试代码,
Test:使用单元测试框架运行测试,测试代码不会被打包部署
Package:编译好的代码打成可发布的package,如jar,war
Install:将打好的包发布到本地仓库
Deploy:将最终的包复制到远程仓库
具体写几个标签的作用:
parent:继承父pom
<parent>
<groupId>com.zgxcw.yhzx</groupId>
<artifactId>yhzx</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
parent是配置在子项目里,可以继承父pom里的东西,为了统一版本管理
modules:统一管理pom
<modules>
<module>user-service-api</module>
<module>user-service-impl</module>
</modules>
一般这是配置在父依赖里的pom.xml 里 可以统一项目的install clean deploy等!
dependencies:依赖-所需要的jar都配置在这里
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<scope>provided</scope>
</dependency>
需要注意的是这俩个依赖 打成war包发布的时候会和tomcat的jar发生冲突
所以配置成scope:provice 就是生成war的时候不打包这俩个jar包
properties:定义全局属性
<spring.version>4.1.1.RELEASE</spring.version>
这样配置spring版本,在依赖里就可以这么配置版本号${spring.version}
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
实战后总结maven的特点:
1.maven提供了很好的jar包管理方式
2.依赖库的管理。如大型项目可以很好的管理各个子系统共享jar资源
3.可以很好的做到项目版本控制
4.扩展性很好。可以方便的支持各类插件,涉及到方方面面,比如编译、打包、依赖检查、web容器启动,用例执行等等
5.pom文件的继承。大项目,一般子项目(maven module)很多,为了防止父pom过大不易维护,子项目单独使用的jar只在自己的pom设置即可。
总结的不是很完美,共同学习,互相交流,才疏学浅,多多指教!

浙公网安备 33010602011771号