你首先須要瞭解如何在電腦上安裝軟件。若是你不知道如何作到這一點,請詢問你辦公室,學校裏的人,或花錢找人來解釋這個給你。 不建議給Maven的服務郵箱來發郵件尋求支持。html
Maven是基於java的工具,因此你的電腦上必須安裝了java環境。
java
首先,下載Maven和按照安裝說明進行操做。而後,在終端或在命令行中鍵入如下命令:shell
mvn --version
終端或命令行中應該打印出本機所安裝的Maven的版本,以下:apache
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 23:22:22+0800) Maven home: /usr/local/apache-maven-3.1.1 Java version: 1.6.0_65, vendor: Apple Inc. Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home Default locale: zh_CN, platform encoding: EUC_CN OS name: "mac os x", version: "10.9.1", arch: "x86_64", family: "mac"
若是是Windows環境,格式應該相似這樣:windows
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。網絡
首先,建立存放項目的目錄(例如d:\maven_proj或者/Users/xxx/maven_proj),打開終端或者命令行,切換到該目錄下,執行如下Maven命令:框架
mvn archetype:generate -DgroupId=com.oschina.test -DartifactId=my-maven-test -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
若是是剛安裝了Maven的,第一次運行可能須要一段時間。這是由於Maven正在從網上下載大部分最近的artifacts (plugin jars and other files)到你的本地倉庫。可能須要執行幾回該命令才能成功。這是由於在下載完成以前,遠程服務器的鏈接可能超時。maven
輸出的命令行可能相似:
ide
[WARNING] [WARNING] Some problems were encountered while building the effective settings [WARNING] Unrecognised tag: 'activeProfile' (position: START_TAG seen ...</activeProfiles>\n -->\n <activeProfile>... @278:18) @ /usr/local/apache-maven-3.1.1/conf/settings.xml, line 278, column 18 [WARNING] Unrecognised tag: 'activeProfile' (position: START_TAG seen ...</activeProfiles>\n -->\n <activeProfile>... @278:18) @ /Users/flanliulf/.m2/settings.xml, line 278, column 18 [WARNING] [INFO] Scanning for projects... Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/maven-metadata.xml Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/maven-metadata.xml (701 B at 0.3 KB/sec) Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.2/maven-archetype-plugin-2.2.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.2/maven-archetype-plugin-2.2.pom (8 KB at 3.4 KB/sec) ....(此處省略) Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/1.0/maven-archetype-quickstart-1.0.pom (703 B at 1.1 KB/sec) [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: com.oschina.test [INFO] Parameter: packageName, Value: com.oschina.test [INFO] Parameter: package, Value: com.oschina.test [INFO] Parameter: artifactId, Value: my-maven-test [INFO] Parameter: basedir, Value: /Users/flanliulf/maven-proj [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] project created from Old (1.x) Archetype in dir: /Users/flanliulf/maven-proj/my-maven-test [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2:51.915s [INFO] Finished at: Thu Jan 23 14:59:17 CST 2014 [INFO] Final Memory: 9M/81M [INFO] ------------------------------------------------------------------------
當輸出了「BUILD SUCCESS」時表示項目建立成功了,你會發現,生成的目標建立一個目錄,並給出了artifactId的相同的名稱。進入這個目錄。
cd my-maven-test
該項目的目錄結構以下:
my-maven-test |-- pom.xml `-- src |-- main | `-- java | `-- com | `-- oschina | `-- test | `-- App.java `-- test `-- java `-- com `-- oschina `-- test `-- AppTest.java
在src/main/java目錄中包含了項目的源代碼,src/test/java目錄中包含了項目的測試代碼,pom.xml文件是該項目的項目對象模型(Project Object Model),一般稱爲POM文件。
pom.xml文件是一個Maven項目的核心配置文件。它是包含了大部分你指望如何build一個項目所需信息的一個配置文件。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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.oschina.test</groupId> <artifactId>my-maven-test</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>my-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>
你執行了Maven的目標(goal) archetype:generate,並添加了一系列的參數。前綴archetype是包含了目標的插件。若是你熟悉Ant ,你能夠設想這相似於Ant中的任務(task)。這個目標建立了一個基於原型(archetype)的簡單項目。我只想說,一個插件是一系列擁有共同目的(general common purpose)的目標的集合。例如,jboss-maven-plugin插件,其目的是「處理各類JBoss項目(deal with various jboss items)」 。
mvn package
命令行中將打印編譯時的各類信息,輸出了「BUILD SUCCESS」時表示項目編譯成功了。
[WARNING] [WARNING] Some problems were encountered while building the effective settings [WARNING] Unrecognised tag: 'activeProfile' (position: START_TAG seen ...</activeProfiles>\n -->\n <activeProfile>... @278:18) @ /usr/local/apache-maven-3.1.1/conf/settings.xml, line 278, column 18 [WARNING] Unrecognised tag: 'activeProfile' (position: START_TAG seen ...</activeProfiles>\n -->\n <activeProfile>... @278:18) @ /Users/flanliulf/.m2/settings.xml, line 278, column 18 [WARNING] [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building my-maven-test 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom (8 KB at 1.0 KB/sec) 。。。(省略) Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/surefire/surefire-junit3/2.12.4/surefire-junit3-2.12.4.jar (26 KB at 13.9 KB/sec) ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.oschina.test.AppTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ my-maven-test --- Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom Downloaded: http://repo.maven.apache.org/maven2/org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom (5 KB at 3.5 KB/sec) 。。。(省略) Downloaded: http://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar (181 KB at 32.7 KB/sec) [INFO] Building jar: /Users/flanliulf/maven-proj/my-maven-test/target/my-maven-test-1.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:42.914s [INFO] Finished at: Thu Jan 23 15:41:20 CST 2014 [INFO] Final Memory: 11M/81M [INFO] ------------------------------------------------------------------------
不一樣於執行的第一個命令(archetype:generate),你可能會注意到第二個是簡單的一個字 - package。這不是一個目標(goal),這是一個階段(phase)。 一個階段是一個構建的生命週期(build lifecycle)中的一步,一個構建的生命週期,能夠看作是一系列階段的有序集合。當指定了一個階段時, Maven將順序執行每一個階段。例如,若是咱們執行編譯(compile)階段,實際被執行的各個階段以下:
1.validate 2.generate-sources 3.process-sources 4.generate-resources 5.process-resources 6.compile
你可使用下面的命令來測試剛剛編輯和打包的jar:
java -cp target/my-maven-test-1.0-SNAPSHOT.jar com.oschina.test.App
將會獲得以下輸出:
Hello World!
雖然幾乎沒有一個完整的清單,可是下面列出了一些常常執行的默認生命週期(default)中的階段。
validate: 驗證項目是否正確,全部必須的信息是否可用。
compile: 編譯項目的主源碼,通常來講,是對src/main/resources目錄的內容進行變量替換等工做後,複製到項目輸出的主classpath目錄中。
test: 使用單元測試框架對編譯後的源碼進行測試 , 測試代碼不會被打包或部署。
package: 接受編譯好的代碼,打包成可發佈的格式,如JAR。
integration-test: process and deploy the package if necessary into an environment where integration tests can be run
verify: run any checks to verify the package is valid and meets quality criteria
install: 將包安裝到Maven本地倉庫,供本地其餘Maven項目使用。
deploy: 將最終的包複製到遠程倉庫,供其餘開發人員和Maven項目使用。
還有值得注意的另外兩個Maven的生命週期超出了上面的默認列表 ,它們是:
clean: 清理上一次構建生成的文件
site: 生成項目站點文檔
階段實際上被映射到底層的目標。每一個階段執行的具體目標依賴於項目的包裝類型。例如,若是項目類型是一個JAR的話,package 執行 jar:jar ,而若是項目類型是 WAR 的話,執行的是 war:war。
注意的是,階段(phase)和目標(goal)能夠順序執行。
mvn clean dependency:copy-dependencies package
此命令將清理項目(clean the project),拷貝依賴(copy dependencies)和打包項目(package the project,即執行全部階段來打包) 。
mvn site
此階段根據項目的POM文件生成了一個site。你能夠發如今target/site目錄下生成了文檔。
這是一個很是簡單的快速入門指南。若是想進一步深刻理解相關內容,請參考 Maven Getting Started Guide。