maven 學習總結(二)——Maven專案構建過程練習
上一篇只是簡單介紹了一下maven入門的一些相關知識,這一篇主要是體驗一下Maven高度自動化構建專案的過程
一、建立Maven專案
1.1、建立Hello專案
1、首先建立Hello專案,同時建立Maven約定的目錄結構和pom.xml檔案
Hello
| –src
| —–main
| ———-java
| ———-resources
| —–test
| ———java
| ———resources
| –pom.xml
2、編輯專案Hello根目錄下的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>me.gacl.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Hello</name>
<!--新增依賴的jar包-->
<dependencies>
<!--專案要使用到junit的jar包,所以在這裡新增junit的jar包的依賴-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
3、在src/main/java/me/gacl/maven目錄下新建檔案Hello.java
Hello.java的程式碼如下:
package me.gacl.maven;
public class Hello {
public String sayHello(String name){
return "Hello "+name+"!";
}
}
4、在/src/test/java/me/gacl/maven目錄下新建測試檔案HelloTest.java
HelloTest.java的程式碼如下:
package me.gacl.maven;
//匯入junit的包
import org.junit.Test;
import static junit.framework.Assert.*;
public class HelloTest {
@Test
public void testHello(){
Hello hello = new Hello();
String results = hello.sayHello("gacl");
assertEquals("Hello gacl!",results);
}
}
1.2、使用Maven編譯、清理、測試、打包專案
1、使用Maven編譯專案,編譯專案的命令是:”mvn compile”
開啟cmd命令列,
進入Hello專案根目錄執行”mvn compile”命令編譯專案的java類
編譯成功之後,可以看到hello專案的根目錄下多了一個【target】資料夾,這個資料夾就是編譯成功之後Maven幫我們生成的資料夾,如下圖所示:
開啟【target】資料夾,可以看到裡面有一個【classes】資料夾,如下圖所示:
【classes】資料夾中存放的就是Maven我們編譯好的java類,如下圖所示:
這就是使用Maven自動編譯專案的過程。
2、使用Maven清理專案,清理專案的命令是:”mvn clean”
進入Hello專案根目錄執行”mvn clean”命令清理專案,清理專案的過程就是把執行”mvn compile”命令編譯專案時生成的target資料夾刪掉,如下圖所示:
3、使用Maven測試專案,測試專案的命令是:”mvn test”
進入Hello專案根目錄執行”mvn test”命令測試專案,如下圖所示:
測試成功之後,可以看到hello專案的根目錄下多了一個【target】資料夾,這個資料夾就是測試成功之後Maven幫我們生成的資料夾,如下圖所示:
開啟【target】資料夾,可以看到裡面有一個【classes】和【test-classes】資料夾,如下圖所示:
也就是說,我們執行執行”mvn test”命令測試專案時,Maven先幫我們編譯專案,然後再執行測試程式碼。
4、使用Maven打包專案,打包專案的命令是:”mvn package”
進入Hello專案根目錄執行”mvn package”命令測試專案,如下圖所示:
打包成功之後,可以看到hello專案的根目錄下的【target】資料夾中多了一個Hello-0.0.1-SNAPSHOT.jar,這個Hello-0.0.1-SNAPSHOT.jar就是打包成功之後Maven幫我們生成的jar檔案,如下圖所示:
5、使用Maven部署專案,部署專案的命令是:”mvn install”
進入Hello專案根目錄執行”mvn install”命令測試專案,如下圖所示:
安裝成功之後,首先會在hello專案的根目錄下生成【target】資料夾,開啟【target】資料夾,可以看到裡面會有Hello-0.0.1-SNAPSHOT.jar,這個Hello-0.0.1-SNAPSHOT.jar就是安裝成功之後Maven幫我們生成的jar檔案,如下圖所示:
除此之外,在我們存放Maven下載下來的jar包的倉庫也會有一個Hello-0.0.1-SNAPSHOT.jar,所以Maven安裝專案的過程,實際上就是把專案進行【清理】→【編譯】→【測試】→【打包】,再把打包好的jar放到我們指定的存放jar包的Maven倉庫中,如下圖所示:
所以使用”mvn install”命令,就把maven構建專案的【清理】→【編譯】→【測試】→【打包】的這幾個過程都做了,同時將打包好的jar包釋出到本地的Maven倉庫中,所以maven最常用的命令還是”mvn install”,這個命令能夠做的事情最多。
1.2、組合使用Maven的命令
maven的編譯,清理,測試,打包,部署命令是可以幾個命令同時組合起來使用的,常用的命令組合如下:
1、先清理再編譯:”mvn clean compile”,如下所示:
還有的就是”mvn clean test”,”mvn clean package”,”mvn clean install”,這些組合命令都比較常用。
以上就是關於Maven構建專案的各個個過程演示。
二、在別的專案中使用通過Maven安裝生成的專案的jar包
在上面,我們使用mvn install命令將hello這個專案打包成了Hello-0.0.1-SNAPSHOT.jar包並且釋出到本地的maven倉庫E:\repository\me\gacl\maven\Hello\0.0.1-SNAPSHOT中,下面我們來看看如何在別的專案中使用Hello-0.0.1-SNAPSHOT.jar
1、新建HelloFriend專案,同時建立Maven約定的目錄結構和pom.xml檔案
HelloFriend
| –src
| —–main
| ———-java
| ———-resources
| —–test
| ———java
| ———resources
| –pom.xml
如下圖所示:
2、編輯專案HelloFriend根目錄下的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>me.gacl.maven</groupId>
<artifactId>HelloFriend</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>HelloFriend</name>
<!--新增依賴的jar包-->
<dependencies>
<!--專案要使用到junit的jar包,所以在這裡新增junit的jar包的依賴-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
<!--專案要使用到Hello的jar包,所以在這裡新增Hello的jar包的依賴-->
<dependency>
<groupId>me.gacl.maven</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
3、在src/main/java/me/gacl/maven目錄下新建檔案HelloFriend.java,如下圖所示:
HelloFriend.java的程式碼如下:
package me.gacl.maven;
import me.gacl.maven.Hello;
public class HelloFriend {
public String sayHelloToFriend(String name){
Hello hello = new Hello();
String str = hello.sayHello(name)+" I am "+this.getMyName();
System.out.println(str);
return str;
}
public String getMyName(){
return "John";
}
}
4、在/src/test/java/me/gacl/maven目錄下新建測試檔案HelloFriendTest.java,如下圖所示:
HelloFriendTest.java的程式碼如下:
package me.gacl.maven;
import static junit.framework.Assert.assertEquals;
import org.junit.Test;
import me.gacl.maven.Hello;
public class HelloFriendTest {
@Test
public void tesHelloFriend(){
HelloFriend helloFriend = new HelloFriend();
String results = helloFriend.sayHelloToFriend("gacl");
assertEquals("Hello gacl! I am John",results);
}
}
5、在HelloFriend目錄下執行命令”mvn package”測試Hello-0.0.1-SNAPSHOT.jar裡面的類是否引用成功,如下所示:
相關文章
- maven 學習總結(三)——使用Maven構建專案Maven
- maven 學習總結(八)——使用Maven構建多模組專案Maven
- Maven學習總結Maven
- maven學習總結(七)——eclipse中使用Maven建立Web專案MavenEclipseWeb
- maven 學習總結(一)——Maven入門Maven
- maven 學習總結(四)——Maven核心概念Maven
- maven 學習總結(六)——Maven與Eclipse整合MavenEclipse
- maven 學習總結(九)——使用Nexus搭建Maven私服Maven
- Maven學習總結(42)——Maven多模組構建中常用的引數Maven
- Maven 構建 Java 專案MavenJava
- Maven Web專案構建MavenWeb
- 使用Maven構建Java專案MavenJava
- maven 學習總結(五)——聚合與繼承Maven繼承
- eclipse 使用 maven 構建專案EclipseMaven
- Maven 學習Maven
- Maven學習Maven
- Maven 學習筆記——將普通的Java專案轉換成Maven專案(3)Maven筆記Java
- Maven專案中resources配置總結Maven
- 你竟然沒用 Maven 構建專案?Maven
- Maven學習--profileMaven
- 構建dubbo分散式平臺-maven構建根專案分散式Maven
- 首次使用ideal構建maven專案webIdeaMavenWeb
- Javascript Promise學習過程總結JavaScriptPromise
- Maven學習筆跡Maven
- 學習Maven IntelliJMavenIntelliJ
- maven 學習筆記Maven筆記
- maven學習(下)利用Profile構建不同環境的部署包Maven
- Maven 學習筆記——Maven和Eclipse(2)Maven筆記Eclipse
- Maven 學習筆記——Maven環境配置(1)Maven筆記
- Maven配置阿里雲代理加速構建專案Maven阿里
- Jenkins 2.32.3引數化構建maven專案-java專案JenkinsMavenJava
- Maven 總結Maven
- Maven-Eclipse搭建一個maven專案(方法二)MavenEclipse
- Javaxuex學習筆記---MavenJava筆記Maven
- Maven 學習筆記一Maven筆記
- eclipse中基於maven構建多模組專案EclipseMaven
- 0.Maven構建spring專案(4.3.6.RELEASE)MavenSpring
- SSM(十) 專案重構-網際網路專案的Maven結構SSMMaven