zoukankan      html  css  js  c++  java
  • 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";
    • 如果本地安装的低于这个版本,就会造成字节码层面的错误;
  • 相关阅读:
    Python读取ini配置文件封装方法
    Python对Selenium调用浏览器进行封装包括启用无头浏览器,及对应的浏览器配置文件
    windows下 apache 二级域名相关配置
    Incorrect integer value: '' for column 'id' at row 1
    [Effective Java 读书笔记] 第二章 创建和销毁对象 第三 四条
    [Effective Java 读书笔记] 第二章 创建和销毁对象 第二条
    [Effective Java 读书笔记] 第二章 创建和销毁对象 第一条
    JAVA ReentrantLock的使用
    Thread类的interrupted方法和isInterrupted方法的区别
    [转]java 为什么wait(),notify(),notifyAll()必须在同步方法/代码块中调用?
  • 原文地址:https://www.cnblogs.com/lhyblog/p/6917437.html
Copyright © 2011-2022 走看看