文档章节

maven的一般用法

文文1
 文文1
发布于 09/12 11:15
字数 1578
阅读 12
收藏 0

目录

 


  这章我们讲讲几个常用的 Maven 命令。由于执行命令是在工程的基础上来的,所以我们要先创建一个 Maven 工程,具体如何创建,在上一篇博客已经介绍了:http://www.cnblogs.com/ysocean/p/7420373.html

 

1、创建 Maven 工程

  

  ①、在 src/main/java 新建包 com.ys.maven,然后在这个包中创建类 HelloMaven.java

package com.ys.maven;
public class HelloMaven {
    //传入一个字符串并返回
    public String Hello(String name){
        return name;
    }
}

  ②、在 src/test/java 新建包 com.ys.maven,然后在这个包中创建类 HelloTest.java

package com.ys.maven;
import junit.framework.Assert;
import org.junit.Test;
public class HelloTest {    
    @Test
    public void testHello(){
        HelloMaven he = new HelloMaven();
        String name = he.Hello("Tom");
        //判断 Hello 传入的参数是否是 "maven"
        Assert.assertEquals("maven", name);
    }
}

  ③、pom.xml 文件如下:

<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.ys</groupId>

  <artifactId>hellomaven</artifactId>

  <version>0.0.1-SNAPSHOT</version>   

  <dependencies>

    <dependency>

        <groupId>junit</groupId>

        <artifactId>junit</artifactId>

        <version>4.0</version>

        <scope>test</scope>

    </dependency>

  </dependencies>

</project>

  为什么要这样写,我们后面会详细讲解。

 

2、Maven 的常用命令

1、mvn compile 编译,将Java 源程序编译成 class 字节码文件,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。

2、mvn test 测试,并生成测试报告,清理的过程中会删除删除target目录下编译的内容。

3、mvn clean 将以前编译得到的旧的 class 字节码文件删除,执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件。

4、mvn pakage 打包。这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的动态打包后的文件,例如 web工程打 war包,Java工程打 jar 包文件。

5、mvn install 该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用

6、deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。

对项目打包有三种打包方式,pom打包,jar包和war包。打包方式在pom.xml文件中进行指定。

注:同时执行多次install或者package命令会每次都更新jar文件。

pom工程一般是聚合工程,代表父工程,负责管理jar包的版本、maven插件的版本等,主要做统一的依赖管理。

jar包就是普通的打包方式,可以是pom工程的子工程。

war包的都是web工程,是可以直接放到tomcat下运行的工程。

打成pom包和jar包的工程在新建的时候可以不需要制定maven项目的原型,达成war包的项目需要制定maven项目原型,指定的原型通常为maven-archetype-webapp,代表web项目。

其中最常用的就是maven clean和maven install。

 

注:

  • mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
  • mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
  • mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。

    由上面的分析可知主要区别如下,

  • install命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
  • package命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
  • deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库 

  

  ①、compile:将Java 源程序编译成 class 字节码文件。

  第一步:选择 pom.xml 文件,右键--->Run As ---->2 Maven build...

  

  第二步:在第一步执行完后弹出来的对话框中,输入 compile,然后点击 Run 按钮

  

  第三步:查看控制台

  

  第四步:在 target 目录下,我们会发现编译生成的 class 文件

 

   ②、test:测试,并生成测试报告

    第一步:选择 pom.xml 文件,右键--->Run As ---->2 Maven build...,然后在弹出框中输入 test

      或者选择 pom.xml 文件,右键--->Run As------>6 Maven test,如下图

 

  第二步:查看控制台

  分析测试程序,我们传入的参数是Tom,而我们希望的是maven,很显然是不相等的,那么测试失败

  

 

   如果测试类 HelloTest.java改为如下:

 

 

  

  重新执行 mvn test 命令,控制台如下:

 

  

  生成的测试报告可以在如下目录查看:target/surefire-reports

 

  

  

  ③、mvn clean 将以前编译得到的旧的 class 字节码文件删除

  第一步:选择 pom.xml 文件,右键--->Run As ---->2 Maven build...,然后在弹出框中输入 clean

    或者选择 pom.xml 文件,右键--->Run As------>3 Maven clean,如下图

   

  

 

  第二步:查看控制台

   

 

    

  第三步:发现 mvn compile 编译好的文件这时已经清除了

 

  

  ④、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。

  第一步:选择 pom.xml 文件,右键--->Run As ---->2 Maven build...,然后在弹出框中输入 package

    

 

   第二步:查看控制台

  

  第三步:进入到 target 目录,会发现打出来的 jar 包

  

 

   ⑤、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用

   这里我们就不截图了,执行命令后,进入到 settings.xml 文件中配置的仓库,你会发现生成的 jar 包

   

 

本文转载自:https://www.cnblogs.com/ysocean/p/7416307.html

文文1
粉丝 25
博文 449
码字总数 141525
作品 0
长沙
程序员
私信 提问
Java的九个知识点

关于java编程的知识,有人会问哪些是重要的知识点,不知道大家是否都知道呢? 现在给大家分享一下! 1.多线程并发 多线程是Java中普遍认为比较难的一块。多线程用好了可以有效提高cpu使用率,...

紫魅编程
2016/09/25
938
2
使用Eclipse-Maven-git做Java开发(17)--maven项目初步

本系列博文有很长一段时间没有更新了,一切源于这期间由一些其他时请需要处理,同时自己也有点松懈了,接下来需要追赶上来了。 本文将演示使用eclipse中的maven进行简单的项目的依赖管理、打...

阿信sxq
2016/07/08
407
0
Get史上最优雅的加密方式!没有之一!

原文出处:https://mp.weixin.qq.com/s/gDhsaKg2jXfmUOW6ixTLg 你的配置文件是不是还在使用下面这种落后的配置暴露一些密码: 如果是,那么继续往下看。笔者今天介绍史上最优雅加密接入方式:...

飞哥-Javaer
2018/09/14
0
0
轻量级服务端校验框架 - smart-validate

smart-validator 轻量级服务端校验框架 支持注解、功能齐全、使用简便 一、功能简介 主要提供便捷的后台数据校验功能,支持单个字段或参数校验,也支持通过注解校验对象,用法简单。 提供基本...

FutureElement
2017/12/14
755
1
Maven settings配置中的mirrorOf

使用maven时,从来没仔细注意过setting配置节点的作用,直到今天配置总是不起作用,总是报错才开始去认识这些节点的含义。 这里就说mirrorOf,因为其他的怎么配置基本上都不会出错,只有mir...

Liuzh_533
2014/03/19
565
0

没有更多内容

加载失败,请刷新页面

加载更多

浅谈prototype原型模式

一、原型模式简介 原型(Prototype)模式是一种对象创建型模式,他采取复制原型对象的方法来创建对象的实例。使用原型模式创建的实例,具有与原型一样的数据。 原型模式的特点: 1、由原型对...

青衣霓裳
25分钟前
6
0
shell mysql 备份

#!/bin/bash time2=$(date "+%Y-%m-%d-%H:%M:%S") /usr/local/mysql/bin/mysqldump -uroot -p ad > /usr/local/mysql/backup/"$time2".sql 变量引用原来是这么用的。......

奋斗的小牛
32分钟前
4
0
Jmeter监控Linux服务器操作

系统:Win7 64位 工具:Jmeter 4.0 要准备好的插件:JMeterPlugins-Standard-1.4.0,ServerAgent-2.2.1 解压JMeterPlugins-Standard-1.4.0.zip,将其中\lib\ext\JMeterPlugins-Standard.jar......

魔鬼妹子
33分钟前
5
0
系列文章:云原生Kubernetes日志落地方案

在Logging这块做了几年,最近1年来越来越多的同学来咨询如何为Kubernetes构建一个日志系统或者是来求助在这过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是想把我们这些年积累的经...

Mr_zebra
33分钟前
5
0
入门必备!快速学会用Aspose.Words在表格中插入和删除列!

Aspose.Words For .Net(点击下载)是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft W...

mnrssj
38分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部