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 構建 Java 專案MavenJava
- 使用Maven構建Java專案MavenJava
- Maven專案中resources配置總結Maven
- 首次使用ideal構建maven專案webIdeaMavenWeb
- 你竟然沒用 Maven 構建專案?Maven
- 構建dubbo分散式平臺-maven構建根專案分散式Maven
- 學習Maven IntelliJMavenIntelliJ
- Maven配置阿里雲代理加速構建專案Maven阿里
- Jenkins 2.32.3引數化構建maven專案-java專案JenkinsMavenJava
- Javascript Promise學習過程總結JavaScriptPromise
- Maven學習筆跡Maven
- Maven 總結Maven
- eclipse中基於maven構建多模組專案EclipseMaven
- 使用Eclipse 安裝 構建Maven專案 (step-by-step)EclipseMaven
- IDEA + maven 零基礎構建 java agent 專案IdeaMavenJava
- kubernetes下jenkins實戰maven專案編譯構建JenkinsMaven編譯
- MyEclipse - 通過Maven建立WebApp專案時,生成的專案名中總是包含Maven Webapp的問題EclipseMavenWebAPP
- Javaxuex學習筆記---MavenJava筆記Maven
- Maven教程(Eclipse配置及maven專案)MavenEclipse
- Gradle學習系列----多專案構建Gradle
- Gradle學習系列—-多專案構建Gradle
- 【構建】start.sh指令碼中變數被maven profile構建過程替換指令碼變數Maven
- vue 原始碼學習(一) 目錄結構和構建過程簡介Vue原始碼
- 從零構建Java專案(Maven+SpringBoot+Git) #02 奧斯丁專案JavaMavenSpring BootGit
- Maven 專案文件Maven
- Maven 專案模板Maven
- Maven 高階篇之構建多模組專案的方法Maven
- SAP Commerce Cloud 的構建過程學習筆記Cloud筆記
- 資料結構專題練習資料結構
- Maven 自動化構建Maven
- Maven 構建生命週期Maven
- 考研學習總結(二)
- Java Maven專案推送到 Maven 中央倉庫JavaMaven
- Git和Maven的學習筆記GitMaven筆記
- 去哪兒網專案學習總結
- 保姆級神器 Maven,再也不用擔心專案構建搞崩了Maven
- 吳恩達《構建機器學習專案》課程筆記(1)– 機器學習策略(上)吳恩達機器學習筆記
- 吳恩達《構建機器學習專案》課程筆記(2)– 機器學習策略(下)吳恩達機器學習筆記