Maven快速入門(二)手動創建maven項目hellomaven
之前講過Maven介紹及環境搭建,介紹了maven的作用和如何搭建maven環境。接下來就以一個helloworld的例子來說一說如何創建maven項目以及maven項目的項目結構,最後講maven如何編譯運行項目。maven快速入門系列地址://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="//maven.apache.org/POM/4.0.0" xmlns:xsi="//www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="//maven.apache.org/POM/4.0.0 //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包 |
除了以上命令之外,還有之前介紹的查看maven版本的命令:mvn -v 。
最後
以上,用hellomaven為例,首先介紹了如何創建maven項目、然後maven項目的結構,最後將如何編譯運行maven項目。是不是特別簡單。雖然簡單,但這是所有開發者必學必會的基礎技能。請大家關注(架構師精進)!