博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven---->配置,指令,插件,使用
阅读量:4311 次
发布时间:2019-06-06

本文共 7699 字,大约阅读时间需要 25 分钟。

maven是用于java的自动化构建工具。

1.下载:

下载下面截图标红处的文件

然后直接解压可以得到文件夹,得到如下文件夹

不用安装,直接放置到你的目标盘位置

2.配置(前提是电脑已经装好jdk)

在电脑加入环境变量

M2_HOME   D:\SoftInstall\apache-maven-3.5.2

path  ;D:\SoftInstall\apache-maven-3.5.2\bin

3.测试是否安装成功。

在cmd控制台输入:mvn -v,然后回车。结果如下:

4.maven常用命令

mvn compile

mvn clean  (note:旧版本的maven,使用这个命令,执行之后必须执行mvn compile或者mvn test)

mvn test-compile

mvn test

mvn package

mvn install

mvn site 

 5。maven项目修改eclipse的context root:

在.pom文件的build节点内配置finalName节点,finalName节点的值写入项目的名称。

maven --> update project... ,context root变成设置的值。

6。maven项目创建web 工程

创建普通的maven工程 --> 右击项目 --> properties --> 搜索 project facets --> 去除 dynamic web module选项 -->  点击 apply -->

重新勾选 dynamic web module --> 出现  further configuration availuable... ,点击 --> 出现  modify facets project  对话框 -->

勾选 generate web.xml deployment descriptor ,修改content directory为src/main/webapp --> ok -->创建web 完成。

7。java maven项目和java web maven项目两者项目结构的比较:

两种工程在java视图下的截图:

两种工程在java ee视图下的截图:

 注意:在开发的时候最好是切换到java视图下。java web工程的结构还不完全和java工程一样,需要做一些改变。

eclipse工作区在三种不同模式下工程结构不一样

在不同视图java和java ee下,工作区切换到package explorer模式统一呈现工程结构。

8、社区版idea使用tomcat:

1)、创建maven工程

2)、pom.xml中配置tomcat插件:

1  
2
test
3
4
5
org.apache.tomcat.maven
6
tomcat7-maven-plugin
7
2.2
8
9
8080
10
/
11
UTF-8
12
tomcat7
13
14
15
16

3)、idea做如下配置:

 

4)、测试: localhost:8080

 

 出现以上结果表示成功。

 9、打包jar到本地仓库:

mvn install:install-file -DgroupId=xxx -DartifactId=xxx -Dversion=1.0.0 -Dpackaging=jar -Dfile=目标jar位置

例如,打包lucene-analyzers-3.6.2.jar,首先进入到jar包所在位置,然后使用命令:

mvn install:install-file -DgroupId=org.apache.lucene -DartifactId=lucene-analyzers-common -Dversion=3.6.2 -Dpackaging=jar -Dfile=lucene-analyzers-3.6.2.jar

10、maven常用指令学习:

mvn archetype:generate #这个指令可以生成基本的maven工程的骨架,指令开始之后按照提示输入gav,截图如下:

 

 

 

 

mvn compile #这个指令的作用是编译源码,进入刚才创建的maven工程的第一层目录使用该指令,执行效果如下:

 

mvn test-compile #这个指令的作用是编译测试代码,直接在maven工程的第一层执行该指令,执行效果如下:

 

mvn test # 运行应用程序中的单元测试,同上执行,执行效果如下:

 

 

mvn site # 生成项目相关信息的网站 ???

 

mvn package #该指令的作用是生成 jar 文件

 

 

mvn install #在本地maven仓库中安装 jar 文件

 

目录结构基本没变。

 

mvn -Dmaven.test.skip=true  #忽略测试文档编译

 

mvn clean #清除target目录中的内容,执行效果如下:

 

 

mvn clean compile #编译java代码,补充:效果同上mvn clean package #打包,补充:效果同上  mvn clean test #进行单元测试代码执行,补充:效果同上

 

mvn clean deploy # 部署到版本仓库 ????mvn clean install # 安装到本地maven仓库中  补充:效果同上

 

mvn dependency:list #查看项目pom.xml已解析依赖  mvn dependency:tree #列出项目pom.xml的依赖树  mvn dependency:analyze #查看依赖的工具,可以分析依赖是否出现问题

 

 

mvn help:system #从中央仓库下载文件至本地仓库  ???? 效果是:下载了一堆东西,然后在控制台看到平台属性细节,包括环境变量和系统属性mvn help:active-profiles #查看当前激活的profiles  mvn help:all-profiles #查看所有profiles  mvn help:effective -pom #查看完整的pom信息  效果是:在控制台打印出详尽的pom.xml的内容

 

 

 

mvn clean package -Dmaven.test.skip=true 跳过test打包

 

小结:几乎每一个指令都有一个插件在支撑之运行。

疑惑:

1、mvn clear install和mvn clear deploy的区别

intasll 安装jar到本地maven仓库

deploye 安装jar到非本地maven仓库(远程安装)

2、clear的作用是什么

这将在启动之前删除具有所有构建数据的target目录,保证它是全新的。

转载一篇文章  以上指令的学习参考该文章

 

插件(更多插件:

maven-jar-plugin

配置pom.xml使jar打包后可执行,可手动添加Main-Class和Class-Path到MENIFEST.MF文件

1 
2
org.apache.maven.plugins
3
maven-jar-plugin
4
3.1.0
5
6
7
8
true
9
com.rui.Sender
10
lib/
11
12
13
14
15 16
17
org.apache.maven.plugins
18
maven-dependency-plugin
19
3.1.1
20
21
22
copy-dependencies
23
package
24
25
copy-dependencies
26
27
28
${project.build.directory}/lib
29
false
30
false
31
true
32
33
34
35
View Code

maven-shade-plugin

打包项目成ubur.jar,把项目依赖的jar放在一起,jar包可执行。命令:mvn package

1 
2 ... 3
4
5
6
org.apache.maven.plugins
7
maven-shade-plugin
8
3.1.1
9
10
11
package
12
13
shade
14
15
16
17
18
org.sonatype.haven.HavenCli
#指定main方法所在的类的完全限定名19
20
21
22
23
24
25
26
27 ...28
View Code

 

补充:

mvn clean install -Dmaven.test.skip=true 跳过test的编译和打包,直接编译和打包,安装非test

mvn dependency:sources 下载依赖jar包源码

mvn archetype:generate: -DarchetypeArtifactId=maven-archetype-webapp 创建web工程结构

 

2018-08-26 10:01:49

maven测试

maven测试由插件maven-surefire-plngin支持。在约定大于配置的情况下,maven默认会去src/test/java中执行如下格式的文件Testxyz.java或者XyzTest.java。也就是以Test开头或者以Test结尾的文件。

做单元测试时可以使用如下命令行:

1 mvn -Dtest=XyzTest test

假如需要测试多个文件时,可以使用逗号或者星号进行指定,使用如下格式的命令行:

1 mvn -Dtest=Xyz1, Xyz2, Xyz3 test2 3 mvn -Dtest=Xyz* test

举个例子:如果想要测试windows中是否能连接上虚拟机上的linux的mongodb

工程结构是这样的:

测试代码:

1 package com.rui; 2   3 import java.util.Set; 4 import org.junit.Test; 5 import org.junit.runner.RunWith; 6 import org.springframework.test.context.ContextConfiguration; 7 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; 8 import com.mongodb.DB; 9 import com.mongodb.Mongo;10  11 @RunWith(SpringJUnit4ClassRunner.class)  //junit4  12 @ContextConfiguration(locations={"classpath*:spring-mongodb.xml"})  13 public class MongodbConnTest {14  15     @Test16     public void connection(){17         try{      18              Mongo mongo = new Mongo("192.168.0.102", 27017); //连接mongodb            19              DB db = mongo.getDB( "rui" );  //获取db20              Set
collectionNames = db.getCollectionNames(); //获取collection 21 for (String name : collectionNames) { 22 System.out.println("collectionName called: "+name); 23 } 24 25 }catch(Exception e){ 26 e.printStackTrace(); 27 } 28 }29 30 }
View Code

执行测试代码:

1 mvn -Dtest=MongodbConnTest test

测试结果:

2018-08-30 17:50:19

假如需要测试测试类中的方法,maven-surefire-plugin提供一个符号#,通过指定"[测试类]#[测试方法]",然后执行命令mvn -Dtest=ClasName#testMethod test

也支持使用符号*,以类似正则表达式的形式匹配所有相关的方法,命令是mvn -Dtest=ClassName#test* test

note:

maven-surefire-plugin-2.7.3支持

参考文档:

 

===================我是分界的线=========================

ps:

了解了如何使用maven命令运行工程,测试类和方法,再也不用因为电脑配置低装不起eclipse和idea,pycharm(虽然功能强大,很好用,但是电脑会很卡。。。)等等而烦恼了。(*^▽^*)

linux和虚拟机是伟大的发明之两。^_^

用命令行工作很快乐。(*^▽^*)

v1.1

①增加了maven项目修改eclipse的context root的方法。

②增加了maven命令maven clean的使用注意

 v1.2

① 增加了创建maven web项目的步骤

v1.3

① 增加了两种工程在两种视图下结构的比较。

v1.4

①增加了社区版idea使用tomcat设置步骤

 v1.5( 2018-05-22 15:49:25)

增加了打包jar包到本地 仓库指令

 v1.6 (2018-06-04 19:48:00)

修改了eclipse工作区工程结构统一的错误。

v1.7 

增加了补充的内容

转载于:https://www.cnblogs.com/mrray1105/p/8078737.html

你可能感兴趣的文章
笔记:Hadoop权威指南 第8章 MapReduce 的特性
查看>>
JMeter响应数据出现乱码的处理-三种解决方式
查看>>
获取设备实际宽度
查看>>
图的算法专题——最短路径
查看>>
SQL批量删除与批量插入
查看>>
Notes on <High Performance MySQL> -- Ch3: Schema Optimization and Indexing
查看>>
C语言之一般树
查看>>
懂了很多大道理,却依旧过不好一生
查看>>
手工数据结构系列-C语言模拟队列 hdu1276
查看>>
【PyQt5 学习记录】008:改变窗口样式之二
查看>>
android EditText长按屏蔽ActionMode context菜单但保留选择工具功能
查看>>
BUAA 111 圆有点挤
查看>>
c++ 继承产生的名字冲突问题 (1)
查看>>
SQL中on条件与where条件的区别
查看>>
Ubuntu下查看软件版本及安装位置
查看>>
安装IIS
查看>>
动态加载JS(转)
查看>>
SWUST OJ(961)
查看>>
js换空格为别的元素
查看>>
Recommendation Systems
查看>>