首页 > 代码库 > maven(02)--简单的命令操作

maven(02)--简单的命令操作

使用maven有什么好处呢?

  这个问题留到该文的末尾进行总结>v<

 

maven测试

  在上一篇文章中介绍了如何简单的编译一个java文件,执行mvn compile命令后,你会发现在你新建的maven-ch01项目目录下多了一个target文件,该文件下classes文件夹下便是编译后的class文件;

  接下来在main文件应该包含两个文件夹,分别为src和test,不可变动;

  src文件夹下是放项目的主要文件,可以在新建一个java文件夹用来存储java代码;test文件夹下则放一些测试类,也应该新建一个java文件夹,在下面放java测试类;

  1:在test/java文件夹下新建一个com.simfg.maven的包,然后在该包下新建一个TestHelloMaven.java,其内容如下

package com.simfg.maven;import org.junit.*;import static org.junit.Assert.*;public class TestHelloMaven{    @Test    public void testSayHello(){        HelloMaven hm = new HelloMaven();        String str = hm.sayHello("maven");        assertEquals(str,"hello,maven");     }}

  2:然后在命令行输入命令:mvn test

     你会发现它报错了,找不到junit相关类

  3:这时候你可能会将它相关的文件添加到环境变量的classPath路径下,但是如果使用maven的话则不需要这样做,只需要修改pom.xml文件即可,如下

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0                      http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>  <!-- 项目名 -->  <groupId>com.simfg.maven</groupId>  <!-- 项目中的某个模块 -->  <artifactId>maven-01</artifactId>  <!-- 版本号 -->  <version>1.0</version>  <properties>    <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding>  </properties>  <!-- 新添 -->  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.10</version>    </dependency>  </dependencies>  </project>

  4:这时候在在命令行输入:mvn test,会提示编译成功并测试中没有错误

  5:观察该项根目录下的target文件夹中的文件,你会发现多了几个文件,其中test-classes文件夹下是测试类编译后的class文件,surefire-reports文件夹下则是测试报告,下面有两个文件,分别是com.simfg.maven.TestHelloMaven.txt(测试报告)和TEST-com.simfg.maven.TestHelloMaven.xml(测试的一些参数),文件名会由测试类的文件名和所在包下变化

  运行成功的测试报告是这样的

技术分享

  6:是一个错误的测试吧,首先修改TestHelloMaven.java,将

  assertEquals(str,"hello,maven"); -->assertEquals(str,"hello,maven1");

  在命令行中运行:mvn clean  作用:清除缓存

  然后在运行:mvn test  

  运行结果肯定是有错的,截图如下

 技术分享

  打开测试报告,如下图

技术分享

  根据报告可以知道预期是‘hello,maven’,但是代码中是‘hello,maven1’

到这里你肯定已经知道如何进行测试了

 

引入不同项目中的文件

  1:创建一个新的项目,命名为maven-ch02,其结构和maven-ch01差不多,只不过java文件有所有修改,需要根据java文件建立相应的包哦,文件名为Hello.java,内容为

package com.simfg.maven.ch02;import com.simfg.maven.HelloMaven;public class Hello {   public String say(String name){       HelloMaven hm = new HelloMaven();       return hm.sayHello(name);   }}

  2:这时候在切换到项目根路径,然后命令行运行:mvn compile   这时候就会报错,找不到HelloMaven这个类

  3:先切换到maven-ch01这个项目的根路径(路径回退,输入: cd ..),然后在命令行运行:mvn install,这时候就会将这个项目进行发布

  4:在切换会maven-ch02这个项目,在修改pom.xml,主要是建立依赖,内容如下

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0                      http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>  <!-- 项目名 -->  <groupId>com.simfg.maven</groupId>  <!-- 项目中的某个模块 -->  <artifactId>maven-02</artifactId>  <!-- 版本号 -->  <version>2.0</version>  <properties>    <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding>  </properties>  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.10</version>      <scope>test</scope>    </dependency>    <!-- 新添 -->    <dependency>      <groupId>com.simfg.maven</groupId>      <artifactId>maven-01</artifactId>      <version>1.0</version>    </dependency>  </dependencies>  </project>

  5:你肯定发现了新添的代码和maven-ch01项目中的pom.xml有些许类似地方,其实依赖就是依靠groupId、artifactId、version来定位的,在执行命令:mvn compile,你就可以发现编译顺利完成

 

打包项目

   在命令行输入:mvn package

  这时候你会发现target目录下会有一个jar包,这个就是项目打包的结果

 

总结

  基本的maven命令:

  1:mvn compile 编译

  2:mvn test 测试

  3:mvn clean 清空

  4:mvn package 打包

  5:mvn install 发布项目到本地,会经过和编译

 

  使用maven的好处:

  1:无需自己导入jar包,只需要在pom.xml中简单的配置

  2:便于分模块开发

  3:项目转移给他人无需配置

  4:...

  如果你还发现有什么好处欢迎留言-V-

  

 

maven(02)--简单的命令操作