maven snapshot依赖 打包_Maven教程2:Maven项目构建过程练习
點(diǎn)擊上方“Java技術(shù)前線”,選擇“置頂或者星標(biāo)”
與你一起成長
上一篇只是簡單介紹了一下maven入門的一些相關(guān)知識(shí),這一篇主要是體驗(yàn)一下Maven高度自動(dòng)化構(gòu)建項(xiàng)目的過程
一、創(chuàng)建Maven項(xiàng)目
1.1、建立Hello項(xiàng)目
1、首先建立Hello項(xiàng)目,同時(shí)建立Maven約定的目錄結(jié)構(gòu)和pom.xml文件
Hello
| --src
| -----main
| ----------java
| ----------resources
| -----test
| ---------java
| ---------resources
| --pom.xml
2、編輯項(xiàng)目Hello根目錄下的pom.xml,添加如下的代碼:
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 <modelVersion>4.0.0modelVersion>
4 <groupId>me.gacl.mavengroupId>
5 <artifactId>HelloartifactId>
6 <version>0.0.1-SNAPSHOTversion>
7 <name>Helloname>
8
9
10 <dependencies>
11
12 <dependency>
13 <groupId>junitgroupId>
14 <artifactId>junitartifactId>
15 <version>4.9version>
16 <scope>testscope>
17 dependency>
18
19 dependencies>
20 project>
3、在src/main/java/me/gacl/maven目錄下新建文件Hello.java
Hello.java的代碼如下:
1 package me.gacl.maven;
2
3 public class Hello {
4
5 public String sayHello(String name){
6 return "Hello "+name+"!";
7 }
8 }
4、在/src/test/java/me/gacl/maven目錄下新建測(cè)試文件HelloTest.java
HelloTest.java的代碼如下:
1 package me.gacl.maven;
2 //導(dǎo)入junit的包
3 import org.junit.Test;
4 import static junit.framework.Assert.*;
5
6 public class HelloTest {
7
8 @Test
9 public void testHello(){
10 Hello hello = new Hello();
11 String results = hello.sayHello("gacl");
12 assertEquals("Hello gacl!",results);
13 }
14 }
1.2、使用Maven編譯、清理、測(cè)試、打包項(xiàng)目
1、使用Maven編譯項(xiàng)目,編譯項(xiàng)目的命令是:"mvn compile"
打開cmd命令行,
進(jìn)入Hello項(xiàng)目根目錄執(zhí)行"mvn compile"命令編譯項(xiàng)目的java類
編譯成功之后,可以看到hello項(xiàng)目的根目錄下多了一個(gè)【target】文件夾,這個(gè)文件夾就是編譯成功之后Maven幫我們生成的文件夾,如下圖所示:
打開【target】文件夾,可以看到里面有一個(gè)【classes】文件夾,如下圖所示:
【classes】文件夾中存放的就是Maven我們編譯好的java類,如下圖所示:
這就是使用Maven自動(dòng)編譯項(xiàng)目的過程。
2、使用Maven清理項(xiàng)目,清理項(xiàng)目的命令是:"mvn clean"
* 進(jìn)入Hello項(xiàng)目根目錄執(zhí)行"mvn clean"命令清理項(xiàng)目,清理項(xiàng)目的過程就是把執(zhí)行"mvn compile*"命令編譯項(xiàng)目時(shí)生成的target文件夾刪掉,如下圖所示:
3、使用Maven測(cè)試項(xiàng)目,測(cè)試項(xiàng)目的命令是:"mvn test"
進(jìn)入Hello項(xiàng)目根目錄執(zhí)行"mvn test"命令測(cè)試項(xiàng)目,如下圖所示:
測(cè)試成功之后,可以看到hello項(xiàng)目的根目錄下多了一個(gè)【target】文件夾,這個(gè)文件夾就是測(cè)試成功之后Maven幫我們生成的文件夾,如下圖所示:
打開【target】文件夾,可以看到里面有一個(gè)【classes】和【test-classes】文件夾,如下圖所示:
也就是說,我們執(zhí)行執(zhí)行"mvn test"命令測(cè)試項(xiàng)目時(shí),Maven先幫我們編譯項(xiàng)目,然后再執(zhí)行測(cè)試代碼。
4、使用Maven打包項(xiàng)目,打包項(xiàng)目的命令是:"mvn package"
* 進(jìn)入Hello項(xiàng)目根目錄執(zhí)行"mvn* package"命令測(cè)試項(xiàng)目,如下圖所示:
打包成功之后,可以看到hello項(xiàng)目的根目錄下的【target】文件夾中多了一個(gè)Hello-0.0.1-SNAPSHOT.jar,這個(gè)Hello-0.0.1-SNAPSHOT.jar就是打包成功之后Maven幫我們生成的jar文件,如下圖所示:
5*、使用Maven部署項(xiàng)目,部署項(xiàng)目的命令是:"mvn install"*
* 進(jìn)入Hello項(xiàng)目根目錄執(zhí)行"mvn* install"命令測(cè)試項(xiàng)目,如下圖所示:
安裝成功之后,首先會(huì)在hello項(xiàng)目的根目錄下生成【target】文件夾,打開【target】文件夾,可以看到里面會(huì)有Hello-0.0.1-SNAPSHOT.jar,這個(gè)Hello-0.0.1-SNAPSHOT.jar就是安裝成功之后Maven幫我們生成的jar文件,如下圖所示:
除此之外,在我們存放Maven下載下來的jar包的倉庫也會(huì)有一個(gè)Hello-0.0.1-SNAPSHOT.jar,所以Maven安裝項(xiàng)目的過程,實(shí)際上就是把項(xiàng)目進(jìn)行【清理】→【編譯】→【測(cè)試】→【打包】,再把打包好的jar放到我們指定的存放jar包的Maven倉庫中,如下圖所示:
所以使用"mvn install"命令,就把maven構(gòu)建項(xiàng)目的【清理】→【編譯】→【測(cè)試】→【打包】的這幾個(gè)過程都做了,同時(shí)將打包好的jar包發(fā)布到本地的Maven倉庫中,所以maven最常用的命令還是"mvn install",這個(gè)命令能夠做的事情最多。
1.2、組合使用Maven的命令
maven的編譯,清理,測(cè)試,打包,部署命令是可以幾個(gè)命令同時(shí)組合起來使用的,常用的命令組合如下:
1、先清理再編譯:"mvn clean compile",如下所示:
還有的就是"mvn clean test","mvn clean package","mvn clean install",這些組合命令都比較常用。
以上就是關(guān)于Maven構(gòu)建項(xiàng)目的各個(gè)個(gè)過程演示。
二、在別的項(xiàng)目中使用通過Maven安裝生成的項(xiàng)目的jar包
在上面,我們使用mvn install命令將hello這個(gè)項(xiàng)目打包成了Hello-0.0.1-SNAPSHOT.jar包并且發(fā)布到本地的maven倉庫E:\repository\me\gacl\maven\Hello\0.0.1-SNAPSHOT中,下面我們來看看如何在別的項(xiàng)目中使用Hello-0.0.1-SNAPSHOT.jar
1、新建HelloFriend項(xiàng)目,同時(shí)建立Maven約定的目錄結(jié)構(gòu)和pom.xml文件
HelloFriend
| --src
| -----main
| ----------java
| ----------resources
| -----test
| ---------java
| ---------resources
| --pom.xml
如下圖所示:
2、編輯項(xiàng)目HelloFriend根目錄下的pom.xml,添加如下的代碼:
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 <modelVersion>4.0.0modelVersion>
4 <groupId>me.gacl.mavengroupId>
5 <artifactId>HelloFriendartifactId>
6 <version>0.0.1-SNAPSHOTversion>
7 <name>HelloFriendname>
8
9
10 <dependencies>
11
12 <dependency>
13 <groupId>junitgroupId>
14 <artifactId>junitartifactId>
15 <version>4.9version>
16 <scope>testscope>
17 dependency>
18
19 <dependency>
20 <groupId>me.gacl.mavengroupId>
21 <artifactId>HelloartifactId>
22 <version>0.0.1-SNAPSHOTversion>
23 <scope>compilescope>
24 dependency>
25 dependencies>
26 project>
3、在src/main/java/me/gacl/maven目錄下新建文件HelloFriend.java,如下圖所示:
HelloFriend.java的代碼如下:
1 package me.gacl.maven;
2
3 import me.gacl.maven.Hello;
4
5 public class HelloFriend {
6
7 public String sayHelloToFriend(String name){
8
9 Hello hello = new Hello();
10 String str = hello.sayHello(name)+" I am "+this.getMyName();
11 System.out.println(str);
12 return str;
13 }
14
15 public String getMyName(){
16 return "John";
17 }
18 }
4、在/src/test/java/me/gacl/maven目錄下新建測(cè)試文件HelloFriendTest.java,如下圖所示:
HelloFriendTest.java的代碼如下:
1 package me.gacl.maven;
2
3 import static junit.framework.Assert.assertEquals;
4 import org.junit.Test;
5 import me.gacl.maven.Hello;
6
7 public class HelloFriendTest {
8
9 @Test
10 public void tesHelloFriend(){
11
12 HelloFriend helloFriend = new HelloFriend();
13 String results = helloFriend.sayHelloToFriend("gacl");
14 assertEquals("Hello gacl! I am John",results);
15 }
16 }
5、在HelloFriend目錄下執(zhí)行命令"mvn package"測(cè)試Hello-0.0.1-SNAPSHOT.jar里面的類是否引用成功,如下所示:
作者:孤傲蒼狼
來源:https://www.cnblogs.com/xdp-gacl/p/4051690.html
熱門內(nèi)容:
- 888G面試資源分享
- 騰訊云雙11特惠秒殺:1核2G配置云服務(wù)器,88元/1年
- 2019年Java經(jīng)典面試題匯總
- Maven教程1:Maven入門
喜歡就點(diǎn)個(gè)"在看"唄^_^
總結(jié)
以上是生活随笔為你收集整理的maven snapshot依赖 打包_Maven教程2:Maven项目构建过程练习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql password no_my
- 下一篇: Mac OS X使屏幕休眠的快捷键是什么