Maven快速入門(二)手動建立maven專案hellomaven
之前講過Maven介紹及環境搭建,介紹了maven的作用和如何搭建maven環境。接下來就以一個helloworld的例子來說一說如何建立maven專案以及maven專案的專案結構,最後講maven如何編譯執行專案。maven快速入門系列地址:https://www.cnblogs.com/zhangweizhong/category/1771605.html
建立Maven專案
其實所謂建立Maven專案,說白了就是建立一個符合Maven約定的專案骨架,也就是專案目錄。這些專案的目錄可以手動建立,也可以用maven外掛。這裡我就介紹使用archetype外掛自動建立目錄。
首先,建立專案存放的目錄(例如d:\maven_project),然後開啟終端或者命令列並切換到d:\maven_project目錄下,執行以下Maven命令:
mvn archetype:generate -DgroupId=com.weiz.hellomaven -DartifactId=hello-maven-test -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
引數說明
groupId : 標識package名稱空間
artifactId: 建立的專案名稱
命令輸出情況:
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 -Dgroovy.source.encoding=UTF-8 [INFO] Scanning for projects... .
.省略輸出
. [INFO] Parameter: basedir, Value: D:\maven_project [INFO] Parameter: package, Value: com.weiz.hellomaven [INFO] Parameter: groupId, Value: com.weiz.hellomaven [INFO] Parameter: artifactId, Value: hello-maven-test [INFO] Parameter: packageName, Value: com.weiz.hellomaven [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: D:\maven_project\hello-m aven-test [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.039 s [INFO] Finished at: 2020-05-23T16:40:59+08:00 [INFO] ------------------------------------------------------------------------
注意:如果是剛安裝的Maven,第一次建立專案時可能需要一段時間,因為Maven需要從網上下載大部分最近的artifacts (plugin jars and other files)到你的本地倉庫。如果失敗了,再執行一次該命令即可。
輸出了“BUILD SUCCESS”時表示專案建立成功了,建立一個hello-maven-test的專案。
Maven專案結構
1、專案結構
maven工程與以往的java工程目錄結構有所不同,以往的java工程目錄目錄一般只有一個src用於存放包及java檔案,而maven工程目錄長這樣:
$ MavenProject |-- pom.xml |-- src | |-- main | | `-- java | | `-- resources | `-- test | | `-- java | | `-- resources
一般將java的功能程式碼,放在main/java下面,而測試程式碼放在test/java下,這樣在執行時,maven才可以識別目錄並進行編譯。
- src/main/java - 存放專案.java檔案;
- src/main/resources - 存放專案資原始檔;
- src/test/java - 存放測試類.java檔案;
- src/test/resources - 存放測試資原始檔;
- target - 專案輸出目錄;
- pom.xml - Maven核心檔案(Project Object Model)
2、pom檔案
POM檔案代表工程物件模型(Project Object Model)它是使用Maven工作的基本元件,位於工程根目錄。POM檔案支援繼承。
<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.weiz.hellomaven</groupId> <artifactId>hello-maven-test</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>hello-maven-test</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
3、maven 座標
maven 的所有構件均通過座標進行組織和管理。maven 的座標通過 5 個元素進行定義,其中 groupId、artifactId、version 是必須的,packaging 是可選的(預設為jar),classifier 是不能直接定義的。
節點 | 描述 |
groupId | 這是工程組的標示,它在一個組織或專案中通常是唯一的,例如,上述專案中com.weiz.hellomaven擁有所有當前組織的專案。 |
artifactId | 當前工程標識。通常是工程的名稱,如上述中的hello-maven-test。groupId和artifactId一起定位了當前專案的倉庫中的位置資訊 |
version | 工程版本號,如:com.weiz.hellomaven:hello-maven-test:1.0-SNAPSHOT |
編譯、執行
上面講了專案的目錄結構,已經如何建立專案,那麼怎麼專案怎麼編譯、執行呢?
1、編譯
開啟控制檯,進入到新建立的工程的目錄下,執行命令:mvn compile
[INFO] Scanning for projects... [INFO] [INFO] ----------------< com.weiz.hellomaven:hello-maven-test >---------------- [INFO] Building hello-maven-test 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]---------------------------------.
.省略輸出
. [INFO] Nothing to compile - all classes are up to date [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.923 s [INFO] Finished at: 2020-05-23T17:41:56+08:00 [INFO] ------------------------------------------------------------------------
輸出了“BUILD SUCCESS”時表示專案編譯成功。專案編譯成功後會在專案下生成一個target資料夾,裡面存放編譯後的檔案。
2、執行測試類
編譯成功後執行mvn test命令,執行測試類:mvn test
[INFO] Scanning for projects... .
省略輸出
.
. ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.weiz.hellomaven.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 sec Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 -Dgroovy.source.encoding=UTF-8 Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.131 s [INFO] Finished at: 2020-05-23T17:53:57+08:00 [INFO] ------------------------------------------------------------------------
輸出資訊裡會顯示單元測試的成功,失敗數。
maven常用命令
來看一下maven幾個常用的構建命令,格式為mvn xxx。
命令 | 功能 | 備註 |
mvn compile |
編譯原始碼 | 這個過程會下載工程所有依賴的jar包 |
mvn clean | 清理環境 | 清理target目錄 |
mvn test | 執行單元測試用例 | |
mvn install | 安裝jar包到本地倉庫 | |
mvn dependency:tree | 樹型顯示maven依賴關係 | 用於排查依賴衝突的問題 |
mvn dependency:list | 顯示maven依賴列表 | |
mvn package | 打包,將java工程打成jar包或war包 |
除了以上命令之外,還有之前介紹的檢視maven版本的命令:mvn -v 。
最後
以上,用hellomaven為例,首先介紹瞭如何建立maven專案、然後maven專案的結構,最後將如何編譯執行maven專案。是不是特別簡單。雖然簡單,但這是所有開發者必學必會的基礎技能。請大家關注(架構師精進)!