1. 程式人生 > >Maven快速入門(二)手動建立maven專案hellomaven

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專案。是不是特別簡單。雖然簡單,但這是所有開發者必學必會的基礎技能。請大家關注(架構師精進)!