maven记录

 

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

 

mvn archetype:create 创建Maven项目
mvn compile 编译源代码
mvn deploy 发布项目
mvn test-compile 编译测试源代码
mvn test 运行应用程序中的单元测试
mvn site 生成项目相关信息的网站
mvn clean 清除项目目录中的生成结果
mvn package 根据项目生成的jar
mvn install 在本地Repository中安装jar
mvn eclipse:eclipse 生成eclipse项目文件
mvnjetty:run 启动jetty服务
mvntomcat:run 启动tomcat服务
mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类
 

配置maven环境:

我的电脑-----属性----高级-----环境变量-----环境变量-----新建

变量名:M2_HOME

变量值:D:\maven\apache-maven-3.3.3

配置path 

找到path 在环境变量值尾部加入:;%M2_HOME%\bin;---前面注意分号

然后cmd dos命令执行下 mvn -v 如下图代表成功

 

maven基础知识:

1 坐标

Maven坐标包括groupId、aftifactID、versionpackageing

Groupid:定义当前maven项目隶属的实际项目

aftifactId:该元素定义项目中一个maven项目(模块),一般使用实际项目名作为前缀,再加上模块名称。

Version:定义maven项目当前所处的版本。

Packageing:打包方式。默认jarWeb项目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,如jarwar

 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设置即可。

总结的不是很完美,共同学习,互相交流,才疏学浅,多多指教!

 

 

 

 

 
posted @ 2016-04-07 15:52  小马过河~  阅读(204)  评论(0)    收藏  举报