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-

  

时间: 2024-08-04 22:14:21

maven(02)--简单的命令操作的相关文章

02 redis通用命令操作

set hi hello 设置值 get hi 获取值 keys * 查询出所有的key memcached 不能查询出所有的key keys *h 模糊查找key keys h[ie] 模糊查找 keys o?e 通配单个字符 randomkey 随机key type age 查询出是啥类型 exists key 判断是否存在该key del hi 删除某个key rename one two 修改key名 renamenx one hi 如果存在one则修改,不存在则不修改返回0 ttl h

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

友情提示:非原文链接可能会影响您的阅读体验,欢迎查看原文.(http://blog.geekcome.com) 原文地址:http://blog.geekcome.com/archives/284 在上一篇中介绍了Cobar和client初次建立连接的过程,Cobar监听端口,client发起连接请求,Cobar发送握手数据包,client发送认证数据包最后依据认证的结果Cobar向client发送认证结果. 在认证成功后Cobar会将该连接的回调处理函数由FrontendAuthenticat

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

上一篇给大家介绍了Maven的概念和仓库的一些信息,接下来给大家分享一下使用命令和MyEclipse创建Maven项目 一.使用命令管理Maven项目 1.1.创建Maven java项目 1)创建一个文件夹(MavenProject)——>该文件夹下按shift+右击选择在此处打开命令窗口——>这样创建的maven[java]项目就在该文件夹下 2)命令:mvn archetype:generate -DgroupId=com.zyh.maven.quickstart -DartifactI

学会使用简单的MySQL操作

第十八章 学会使用简单的MySQL操作 在前面两个章节中已经介绍过MySQL的安装了.可是光会安装还不够.还须要会一些主要的相关操作.当然了,关于MySQL的内容也是非常多的.仅仅只是对于linux系统管理员来讲,一些主要的操作已经能够应付日常的管理工作了.至于更高深的那是DBA(专门管理数据库的技术人员)的事情了. [更改mysql数据库root的password] 首次进入数据库是不用password的 /usr/local/mysql/bin/mysql -u root Welcome t

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

#Redis简单的数据操作(增删改查): 字符串类型 string 1. 存储: set key value 127.0.0.1:6379> set username zhangsan OK 2. 获取: get key 127.0.0.1:6379> get username "zhangsan" 以下同理: 127.0.0.1:6379> set age 23 OK 127.0.0.1:6379> get age "23" 127.0.0

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突

Git的纯命令操作,Install,Clone , Commit,Push,Pull,版本回退,撤销更新,分支的创建/切换/更新/提交/合并,代码冲突 这篇是接着上篇分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目讲的,上篇主要是说用GUI来图形化界面操作,但是一般我们程序员也不会这么干,用命令又轻松又愉悦,所以,这里我就再开了一篇来专门说一下纯命令是怎么去操作的,但是要注意哦,其实廖雪峰老师的网站就是非常赞的学习资源哦! 廖雪峰老师:http://www.li

用gdb分析core文件及常见gdb命令操作示例

1.概述 在实际的软件开发项目中,程序出现问题是在所难免的.遥想本人参加工作之后首次遇到程序的情景,至今还历历在目.之前的经验告诉我,我们越是惊慌失措,问题就越是解决不了.我们要先让自己平静下来,然后再寻找解决程序问题的办法. 在Linux下做开发的朋友,想必都与core文件打过交道.当看到自己的程序运行之后出现core时,很多人都慌乱了,仿佛天快要塌下来一样.其实,我们大可不必如此,只要我们掌握了用gdb调试core文件的办法,依然可以很快定位程序问题,一举将bug消灭掉.有关Linux co

走入计算机的第四天(linux的热键和一些简单的命令)

1linux的简单介绍 linux是一款免费使用和自由传播的内似于unix的操作系统软件,是一个基于POSI和unix的多用户,多任务,支持多线程和多CPU的一种操作系统.主要用于服务器,特别是网络服务器. 2  虚拟机的热键 Ctrl+c  终止当前运行的程序和命令. Ctrl+l  清屏,相当于clear命令' Ctrl+a  光标将会移动到当行的行首. Ctrl+e  光标将会移动到当行的行尾. Ctrl+d  退出当前用户环境,相当于exit,logout. Ctrl+Alt+F1 (F

Maven的简单搭建

Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包.接下来将从下面几个方向介绍maven: (1)Maven简单介绍 (2)Maven安装与配置 (3)Maven的常用命令 (4)Maven实例 (1)Maven的简单介绍 Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包.但是对于我们程序员来说,我们最关心的是它的项目构建功能.所以这里我们介绍的就是怎样用 maven 来满足我们项目的日常需要.Maven 使用惯例优于