maven实现java项目记录

因项目需要,重拾java,现在的java平台已不同学生时代,CI(持续集成)都采用maven项目结构,边学变干活~

本文包含:

1. maven创建简单的java项目

2. 进行单元测试JUnit4

3. 收集覆盖率

4. 附录

------------------------------------------正文分割线-------------------------------------------

1. maven创建项目

 1)安装略

 2)mvn 交互式创建项目 (附录参考1) 

     参考:groupId:qctest  artifactId:test package:demo 其他默认

 3)运行 compile test-compile test

 4) 查看单元测试结果 ./target/surefire-reports/TEST-xxx.xxx.xml

2. 单元测试(JUnit4)

  1)修改pom.xml文件

      修改junit的version 3.8.x -> 4.10

 1)修改单元测试

      maven自己创建的单元测试使用的JUnit3,单元测试编码不够灵活。这里采用JUnit4,区别如下:

      A).JUnit4中已经不需要继承TestCase。
      B).在JUnit4中,方法前加上@Before,代表setup,加@beforeDoTest代表teardown。
      C).在JUnit3要求test名和方法名一致,JUnit4无此要求,只需加 @Test。
      D).需要import java.lang.annotation.Annotation>
      E).Junti4中,不需要suite方法,(可能)不需要构造函数。
      F).assert判断语法变更 assertTrue(...) -> Assert.assertTrue(...); 
举例子如下:

package demo;

import org.junit.After;
import org.junit.Before;
import org.junit.Assert;
import org.junit.Test;
import java.lang.annotation.Annotation;

public class AppTest 
{
    /**
     * optional
     */
    @Before
    public void beforeDoTest() throws Exception
    {
        ; 
    }

    /**
     * optional
     */    
    @After
    public void afterAllTest() throws Exception 
    {
        ;
    }
    
    /**
     * Rigourous Test :-)
     */
    @Test
    public void testApp()
    {
        Assert.assertTrue( true );
    }
}

3. 收集覆盖率

  执行命令 mvn clean compile test-compile test cobertura:cobertura site

  覆盖率信息将生成在: ./target/site/cobertura下, html形式

4. 附录:

mvn常用命令

1. mvn compile 编译源代码
2. mvn test-compile 编译测试代码
3. mvn test 运行测试
5. mvn package 打包,根据pom.xml打成war或jar
如果pom.xml中设置 war,则此命令相当于mvn war:war
如果pom.xml中设置 jar,则此命令相当于mvn jar:jar
6. mvn -Dtest package 打包但不测试。完整命令为:mvn -D maven.test.skip=true package
7. mvn install 在本地Repository中安装jar
8. mvn clean 清除产生的项目
9. mvn eclipse:eclipse 生成eclipse项目
10.mvn idea:idea 生成idea项目
11.mvn eclipse:clean 清除eclipse的一些系统设置

参考:

1)http://blog.linguofeng.com/pages/tools/Maven.html  <一个最基本的用maven实现的helloword例子>

2)http://blog.csdn.net/ivanon/article/details/8494110  <基本的Maven入门指南,概念这里都有了>

3)http://blog.csdn.net/zhaofsh/article/details/6156756 [全]


你可能感兴趣的:(maven实现java项目记录)