使用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)--简单的命令操作的更多相关文章

  1. 02 redis通用命令操作

    set hi hello 设置值 get hi 获取值 keys * 查询出所有的key memcached 不能查询出所有的key keys *h 模糊查找key keys h[ie] 模糊查找 k ...

  2. linux 操作系统下简单的命令行操作

    一: 配置linux 操作系统虚拟主机 首先安装一个虚拟机(百度上面有很多哦) , 我主要使用的是VMware workstation 然后 下载一个centos镜像6..5到7都可以; 然后用VMw ...

  3. 分布式数据库中间件–(3) Cobar对简单select命令的处理过程

    友情提示:非原文链接可能会影响您的阅读体验,欢迎查看原文.(http://blog.geekcome.com) 原文地址:http://blog.geekcome.com/archives/284 在 ...

  4. Maven(二)Maven项目的创建(命令、myeclipse)及生命周期

    上一篇给大家介绍了Maven的概念和仓库的一些信息,接下来给大家分享一下使用命令和MyEclipse创建Maven项目 一.使用命令管理Maven项目 1.1.创建Maven java项目 1)创建一 ...

  5. 学会使用简单的MySQL操作

    第十八章 学会使用简单的MySQL操作 在前面两个章节中已经介绍过MySQL的安装了.可是光会安装还不够.还须要会一些主要的相关操作.当然了,关于MySQL的内容也是非常多的.仅仅只是对于linux系 ...

  6. Redis简单的数据操作(增删改查)

    #Redis简单的数据操作(增删改查): 字符串类型 string 1. 存储: set key value 127.0.0.1:6379> set username zhangsan OK 2 ...

  7. 8天掌握EF的Code First开发系列之2 简单的CRUD操作

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境 ...

  8. berkerly db 中简单的读写操作(有一些C的 还有一些C++的)

    最近在倒腾BDB,才发现自己确实在C++这一块能力很弱,看了一天的api文档,总算是把BDB的一些api之间的关系理清了,希望初学者要理清数据库基本知识中的环境,句柄,游标的基本概念,这样有助于你更好 ...

  9. Maven的简单搭建

    Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包.接下来将从下面几个方向介绍maven: (1)Maven简单介绍 (2)Maven安装与配置 (3)Maven ...

随机推荐

  1. jsonp原生js代码示例

    /* mightygumball.js */ /* * get the content of a JSON file using JSONP * update every 3 seconds. * * ...

  2. scipy安装问题

    刚开始使用pip安装的scipy,后来报了错误,具体意思是  numpy版本不支持. 在python.org.pypi 官网上的SciPy包是一个zip版本的,要使用与numpy相对应的后缀才行,也就 ...

  3. [Oracle]同义词(synonym)

    (一)同义词的概念 同义词是数据库中表.视图.索引或其他模式对象的别名,与视图相似,同义词不占用实际的存储空间,在数据字典中只存同义词的定义. 在开发数据库时,应尽量避免直接引用表.视图或其他数据库对 ...

  4. Page-Object设计模式

    自动化脚本初写之际一定是只求完成功能测试,页面by.id.by.name.by.xpath满篇飞.业务逻辑代码重复率也是越来越高.慢慢的写着写着开始重构,开始封装一些方法.代码量好一些的人会在代码开始 ...

  5. unity插件开发——MenuItem

    有unity中的菜单栏是我们经常使用到的地方,如下图: MenuItem的作用就是增加一个自己的菜单 使用方法: 在工程中Assets目录下任意一个Editor目录(以后简称Editor目录,如果不存 ...

  6. QConf简要搭建过程

    QConf的组件: ZooKeeper as the server, restore all configurations, so the limit data size of single conf ...

  7. angular替代Jquery,常用方法支持

    1.angular.bind(self,fn.args);   切换作用域执行 2.angular.copy(source,[destination]);   拷贝和深度拷贝 3.angular.eq ...

  8. C#重的数组、集合(ArrayList)、泛型集合(list<T>)三者比较及扩展延伸……

    本来我只想总结下数组.集合(ArrayList).泛型集合(list<T>)三者的比较的,可以一写下来要扩展的知识点有点多了,只能写一个小的知识点列表了如下: 1.数组.集合(ArrayL ...

  9. Apache Beam 剖析

    1.概述 在大数据的浪潮之下,技术的更新迭代十分频繁.受技术开源的影响,大数据开发者提供了十分丰富的工具.但也因为如此,增加了开发者选择合适工具的难度.在大数据处理一些问题的时候,往往使用的技术是多样 ...

  10. Redis数据类型之列表List

    Redis列表简介 Redis列表是简单的字符串列表,一个列表最多可以包含 232 - 1 个元素.列表按照插入顺序排序,可以从列表的头部或者尾部添加元素 上图演示了使用LPUSH向列表中插入元素,并 ...