Maven介绍
- Maven是一个项目构建工具,可以管理项目依赖,无需自己添加各种依赖包和插件了;
- Maven安装注意需要JDK支持,然后配置MAVEN_HOME环境变量即可;
命名规范
- groupId:代表组织,公司的话一般是:com.netease;个人一般是:org.petrelLi;
- artifactId:项目标识符,一般就是项目名称;
- version:版本,一般是1.0-SNAPSHOT,MAVEN管理时将SNAPSHOT生成一个时间戳,正式发布去掉SNAPSHOT即可;
- package:类型,一般是war或者jar;
- 项目坐标:groupId、artifactId、version、packaging必须定义,标识这个项目的位置,以便被引用;
基本命令
- mvn archetype:generate:表示通过模板生成项目
- mvn compile:编译
- mvn deploy:部署
- mvn site:生成站点、文档
- mvn clean:清理掉之前打包的target数据
- mvn test:单元测试
常用命令
- mvn clean package:打包项目,注意仅仅是打包到本项目的target下,但是如果项目之间有依赖,其他项目依然没有得到最新的依赖jar包;
- mvn install:该命令会把target下的jar安装到本地仓库,这样其他项目就可以使用了;
- mvn clean package install -DskipTests=true;一般这么使用,跳过单元测试加快速度;
目录结构
- src/main/java:存放项目源文件,在java下创建我们需要的包com.netease.dao等;
- src/main/resources存放资源配置文件,比如Spring配置文件;
- src/main/webapp/WEB-INF/jsp:存放展示页面;
- src/main/webapp/WEB-INF:存放web.xml和SpringMVC需要的Servlet配置文件;
- src/test:存放单元测试源文件;
pom.xml说明
- 项目类型:pom,jar,war;
- 属性值,就是一些常量使用配置,引用:${property},非常方便与后期修改;
- 构建配置插件:,引入jetty、tomcat等即可;
- 依赖:,加入Spring,Servlet,TestNG,SpringMVC等即可;
- 继承:多项目配置继承,中引入父项目的pom文件即可;
- 可以继承的属性就是父pom.xml中:groupId,依赖比如log4j,公共插件如jetty,开发者信息等;
- parent项目类型一般是pom,然后其pom.xml需要配置多个指定子项目;
- 依赖配置:可以使用scope指定该依赖是provided的,这样开发的时候使用,而部署的时候不需要;
Maven单元测试
- maven通过maven-surefire-plugin插件支持单元测试;
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
</plugin>
注意:
- 单元测试类名称最好是Test开始或者结尾,或TestCase结尾;
- Maven指定运行单元测试案例:mvn test -Dtest=usrServiceTest;多个测试用例使用逗号隔开即可;还可以使用通配符完成;
2.打包时如果要跳过单元测试
//命令行完成
>- mvn install -DskipTests=true; //不运行单元测试
>- mvn package -Dmaven.test.skip=true; //单元测试不参与编译也不远行
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
3.运行单元测试时出现init错误,还会列出一串字节
- JDK版本问题,比如计费项目使用的JDK:java version "1.7.0_79";
- 如果本地安装的低于这个版本,就会造成字节码层面的错误;