1. 程式人生 > >Maven入門使用(一)

Maven入門使用(一)

團隊 項目結構 表示 gin 使用 cti guid sch 是我

一、什麽是maven

一般認為maven是項目構建工具+依賴管理工具+項目信息管理工具。

maven是一個強大的構建工具,能夠幫助我們自動化構建過程。

清理、編譯、測試、生成報告、打包、部署都是可以通過maven自定義的命令一步完成,不需要我們一步步去手動執行。

同時,maven也幫助我們標準化構建過程。如果手動構建,一千個程序員就有一千種構建方式,這給團隊合作帶來很大的不便。

最後,maven是跨平臺的,對外它提供了一致的接口。不管你是在Windows 還是Linux下,使用的maven命令都是一樣的。

maven還是一個強大的依賴管理工具。以前我們做項目時候,通常需要去網上下載無數個jar包,包含到我們的編譯路徑中。

然而在項目合作中,很難保證每一個程序員下載的jar包一致(版本號不一致是最常見的)。

混亂的jar包導致開發過程出現各種奇怪的問題(最常見的就是工程在你的電腦上跑是ok的,在另外一個人的電腦上跑是failed)。

而maven終結了這一混亂。maven提供了遠程倉庫,你只要提供jar包的groupId,artifactId和version,就可以下載到想要的jar包。

借用數學中的三維坐標系,maven遠程倉庫使用groupId,artifactId和version來構建jar包的三維坐標系。

最後maven還是一個項目信息管理工具。

maven幫助我們管理原本分散在項目中各個角落的項目信息,包括項目描述、開發者列表、版本控制系統地址、許可證、缺陷管理系統地址等。

通過maven我們可以輕松地獲取我們想要的信息。

二、maven的簡單使用

在maven官網中,有一個maven快速入門使用的介紹,官網5分鐘入門。

翻譯成中文就是:

1、生成一個典型的maven項目

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

上面命令行中,groupId表示該maven項目隸屬的項目名;artifactId表示當前maven項目的構建名(當前maven項目的名字,這裏是my-app);

archetypeArtifactId表示maven項目的類型;interactiveMode表示交互方式,如果是false就表示不需要一步步交互。

2、進入生成的項目中

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就是我們的項目對象模型。裏面包含我們項目所有的依賴關系。

<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>4.0.0</modelVersion>
 
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.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>4.8.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

3、構建項目

mvn package

使用上面的命令我們就對my-app進行了構建。

可以從命令行中可以看到mvn package其實執行了很多步步驟,其中包括resource、compile、testResource、testCompile、test等。

Maven入門使用(一)