maven---->配置,指令,插件,使用

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

1.下载:http://maven.apache.org/download.cgi

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

maven---->配置,指令,插件,使用_第1张图片

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

maven---->配置,指令,插件,使用_第2张图片

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

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

在电脑加入环境变量

M2_HOME   D:\SoftInstall\apache-maven-3.5.2

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

3.测试是否安装成功。

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

maven---->配置,指令,插件,使用_第3张图片

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视图下的截图:

maven---->配置,指令,插件,使用_第4张图片

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

maven---->配置,指令,插件,使用_第5张图片

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

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

maven---->配置,指令,插件,使用_第6张图片

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

8、社区版idea使用tomcat:

1)、创建maven工程

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

 1  <build>
 2     <finalName>testfinalName>
 3       <plugins>
 4           <plugin>
 5               <groupId>org.apache.tomcat.mavengroupId>
 6               <artifactId>tomcat7-maven-pluginartifactId>
 7               <version>2.2version>
 8               <configuration>
 9                   <port>8080port>
10                   <path>/path>
11                   <uriEncoding>UTF-8uriEncoding>
12                   <server>tomcat7server>
13               configuration>
14           plugin>
15       plugins>
16   build>

3)、idea做如下配置:

 maven---->配置,指令,插件,使用_第7张图片

4)、测试: localhost:8080

 maven---->配置,指令,插件,使用_第8张图片

 出现以上结果表示成功。

 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,截图如下:

maven---->配置,指令,插件,使用_第9张图片

 

maven---->配置,指令,插件,使用_第10张图片

 

 maven---->配置,指令,插件,使用_第11张图片

 

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

maven---->配置,指令,插件,使用_第12张图片

maven---->配置,指令,插件,使用_第13张图片

 

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

maven---->配置,指令,插件,使用_第14张图片

maven---->配置,指令,插件,使用_第15张图片

 

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

 maven---->配置,指令,插件,使用_第16张图片

maven---->配置,指令,插件,使用_第17张图片

 

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

 

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

 maven---->配置,指令,插件,使用_第18张图片

maven---->配置,指令,插件,使用_第19张图片

 

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

 maven---->配置,指令,插件,使用_第20张图片

目录结构基本没变。

maven---->配置,指令,插件,使用_第21张图片

maven---->配置,指令,插件,使用_第22张图片

 

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

 

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

 maven---->配置,指令,插件,使用_第23张图片

maven---->配置,指令,插件,使用_第24张图片

 

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 #查看依赖的工具,可以分析依赖是否出现问题

 maven---->配置,指令,插件,使用_第25张图片

maven---->配置,指令,插件,使用_第26张图片

maven---->配置,指令,插件,使用_第27张图片

 

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

 maven---->配置,指令,插件,使用_第28张图片

 

 maven---->配置,指令,插件,使用_第29张图片

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

 

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

疑惑:

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

intasll 安装jar到本地maven仓库

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

2、clear的作用是什么

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

转载一篇文章 https://blog.csdn.net/fullstack/article/details/28269471 以上指令的学习参考该文章

 

插件(更多插件:https://maven.apache.org/plugins/

maven-jar-plugin

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

 1 <plugin>
 2          <groupId>org.apache.maven.pluginsgroupId>
 3          <artifactId>maven-jar-pluginartifactId>
 4          <version>3.1.0version>
 5         <configuration>
 6             <archive>
 7              <manifest>
 8                <addClasspath>trueaddClasspath>
 9                <mainClass>com.rui.SendermainClass>
10               <classpathPrefix>lib/classpathPrefix>
11              manifest>
12            archive>
13        configuration>
14       plugin>
15 
16       <plugin>
17          <groupId>org.apache.maven.pluginsgroupId>
18          <artifactId>maven-dependency-pluginartifactId>
19          <version>3.1.1version>
20          <executions>
21            <execution>
22              <id>copy-dependenciesid>
23              <phase>packagephase>
24              <goals>
25               <goal>copy-dependenciesgoal>
26              goals>
27              <configuration>
28               <outputDirectory>${project.build.directory}/liboutputDirectory>
29                <overWriteReleases>falseoverWriteReleases>
30                <overWriteSnapshots>falseoverWriteSnapshots>
31                <overWriteIfNewer>trueoverWriteIfNewer>
32              configuration>
33           execution>
34          executions>
35        plugin>
View Code

maven-shade-plugin

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

 1 <project>
 2   ...
 3   <build>
 4     <plugins>
 5       <plugin>
 6         <groupId>org.apache.maven.pluginsgroupId>
 7         <artifactId>maven-shade-pluginartifactId>
 8         <version>3.1.1version>
 9         <executions>
10           <execution>
11             <phase>packagephase>
12             <goals>
13               <goal>shadegoal>
14             goals>
15             <configuration>
16               <transformers>
17                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
18                   <mainClass>org.sonatype.haven.HavenClimainClass> #指定main方法所在的类的完全限定名
19                 transformer>
20               transformers>
21             configuration>
22           execution>
23         executions>
24       plugin>
25     plugins>
26   build>
27   ...
28 project>
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 test
2 
3 mvn -Dtest=Xyz* test

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

工程结构是这样的:

maven---->配置,指令,插件,使用_第30张图片

测试代码:

 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     @Test
16     public void connection(){
17         try{      
18              Mongo mongo = new Mongo("192.168.0.102", 27017); //连接mongodb            
19              DB db = mongo.getDB( "rui" );  //获取db
20              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支持

参考文档:

http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html

http://maven.apache.org/surefire/maven-surefire-plugin/

 

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

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

你可能感兴趣的:(java,数据库,测试)