1. 程式人生 > >《maven官方文件》5分鐘開始Maven

《maven官方文件》5分鐘開始Maven

原文地址

前提

你必須明白如何在電腦上安裝軟體。如果你不知道如何做,請向你學校、辦公室裡等的人請教下,或者付費給他人讓他們解釋給你。Maven郵件組不是尋求這個建議的最好地方。

安裝

Maven是個Java工具,所以你必須安裝了Java才能繼續。首先,下載Maven,然後按照安裝指南。完成後,在終端或命令列中鍵入如下指令:

mvn --version

應該會列印已安裝Maven的版本。例如:

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 14:51:28+0100)
Maven home: D:\apache-maven-3.0.5\bin\..
Java version: 1.6.0_25, vendor: Sun Microsystems Inc.
Java home: C:\Program Files\Java\jdk1.6.0_25\jre
Default locale: nl_NL, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

基於你的網路設定,你需要額外的配置。如果有必要的話看看Maven配置指南.如果你在使用Windows,你應該檢視Windows前提以確保你已準備好在Windows上使用Maven。

建立一個專案

你需要一個給你專案儲存的地方。在某處建立一個目錄,然後在這個目錄裡開始shell。在你的命令列上,執行如下Maven語言:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

如果你已安裝Maven,第一次執行這個需要一定時間。這是因為Maven在下載最新的物件(jar外掛和其他檔案)到你的本地倉庫。在成功前,也需要你執行幾次命令。這是因為在下載完成前,遠端伺服器可能超時。別擔心,有幾種解決這個的方法。

你講看見生成語言建立了一個和物件ID相同名字的目錄。變更到這個目錄:

cd my-app

使用這個目錄,你講看到如下標準目錄結構

my-app
|-- pom.xml
`-- src
    |-- main
    |   `-- java
    |       `-- com
    |           `-- mycompany
    |               `-- app
    |                   `-- App.java
    `-- test
        `-- java
            `-- com
                `-- mycompany
                    `-- app
                        `-- AppTest.java

src/main/java目錄包含專案原始碼,src/test/java目錄包含檢查原始碼,pom.xml是專案的專案物件模型,或POM。

POM

在Maven裡,pom.xml檔案是專案配置的核心。它是一個獨立的配置檔案,包含了你想要的方式下建立專案所必須的主要資訊。POM是巨大的,其複雜度使人苦惱。但你只需要有效地使用它,沒有必要明白所有的錯綜複雜。專案的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/xsd/maven-4.0.0.xsd">
  <modelVersion>0.0</modelVersion>

  <groupId>mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>Maven Quick Start Archetype</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>8.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

只需要我做的是什麼?

你執行了Maven語言原型:generate,向這個語言傳了許多引數。字首原型是包含這個語言的外掛。如果你熟悉Ant,你可以設想這個是相同的任務。基於一個原型,這個語言建立了一個簡單的專案。現在可以說,外掛是個有通用目的的語言的集合。例如jboss-maven-plugin,目的是“處理大量jboss條目”。

建設專案

mvn package

命令列會打印出各種指令,並具有以下結尾:

...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------[INFO] Total time: 2 seconds
[INFO] Finished at: Thu Jul 07 21:34:52 CEST 2011
[INFO] Final Memory: 3M/6M
[INFO] ------------------------------------------------------------------------

不像第一個執行的命令(archetype:generate),你可能注意到第二個命令是簡單的一個詞-package。這是個階段實行而不是語言。實行階段是[建設生命週期]( https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)裡的而一個步驟,是一系列有序的階段。當給出一個實行階段,Maven將執行序列裡的每一個階段,並且包括定義的階段。例如,如果我們執行編譯階段,實際上得到執行的階段是:

  1. 驗證
  2. 編譯程式碼
  3. 處理程式碼
  4. 生成資原始檔
  5. 處理資原始檔
  6. 編譯
您可以使用以下命令測試新編譯和打包的JAR:
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App

將列印經典語句:

Hello World!

執行Maven工具

Maven階段

儘管幾乎沒有一個全面的清單,這些都是執行最常用的預設生命週期階段。

  • 驗證:驗證專案是正確的,所有必要的資訊
  • 編譯:編譯專案的原始碼
  • 測試:使用合適的單元測試框架測試編譯的原始碼。 這些測試應該不需要程式碼被打包或部署
  • :把編譯後的程式碼,並在其分發格式打包,例如一個JAR。
  • 整合測試:如果需要,處理和部署包到整合測試可以執行的環境
  • 驗證:執行任何檢查,以驗證包是有效的,同時符合質量標準
  • 安裝:包本地安裝到本地儲存庫中,用作本地其他專案的依賴
  • 部署:在整合或釋出環境中進行,複製最終的包到遠端倉庫與其他開發者和專案共享。

還有值得注意的另外兩個Maven的生命週期超出上面的預設列表。 他們是

  • 清潔:清理之前建立建立的工件
  • 網站:生成此專案的站點文件,

實行階段實際上對映到底層的語言。 每階段中執行的具體語言是取決於專案的包型別。 例如, packet執行jarjar如果專案型別為JAR和warwar ,如果專案型別是-你猜對了-WAR。

需要注意的一個有趣的事情是,階段和語言,可以按順序執行。

mvn clean dependency:copy-dependencies package

此命令將清理專案,複製依賴關係,並打包專案(當然執行各個階段到 )。

生成站點

mvn site

這個階段產生基於對專案的POM資訊的站點。你可以看一下在target/site生成的文件。

結論

我們希望這一快速瀏覽已經激起了你的Maven中的通用性興趣。請注意,這是一個非常截斷快速入門指南。現在,你已經準備好關於你剛才執行的動作更全面的資訊。 看看Maven的入門指南