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