Maven总结

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.打包时如果要跳过单元测试

  • 方法1:打包时直接指定相关参数
    //命令行完成
    >- mvn install -DskipTests=true; //不运行单元测试
    >- mvn package -Dmaven.test.skip=true; //单元测试不参与编译也不远行
  • 方法2:直接修改pom文件
    <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";
  • 如果本地安装的低于这个版本,就会造成字节码层面的错误;
原文地址:https://www.cnblogs.com/lhyblog/p/6917437.html