mavn地址:http://maven.apache.org/download.cgihtml
jdk:1.5以上java
操做系統:windows(本文章)spring
maven 下載以後直接解壓便可。mongodb
MAVEN_HOME : E:\develop\apache\apache-maven-3.0.5 MAVEN : %MAVEN_HOME%\bin MAVEN_HOME 是個人maven的解壓目錄。
以上直接在windows 的環境變量添加,而後找到 Path,在裏面添加:%MAVEN%;便可。shell
如圖:apache
安裝成功後,運行: mvn -v 結果以下:windows
maven的倉庫用來維護項目的jar包,全部的jar包都在這,通常的目錄名字:.m2
app
maven的默認倉庫位置不太好,在c盤,須要咱們挪下窩,進入maven目錄(解壓後目錄),進入conf目錄找到:
框架
settings.xmleclipse
而後以下:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- localRepository | The path to the local repository maven will use to store artifacts. | ----------這個是默認倉庫位置------ | Default: ~/.m2/repository <localRepository>/path/to/local/repo</localRepository> --> <!-- 這個是新定義的倉庫位置--> <localRepository>E:\develop\apache\.m2</localRepository>
建立項目目錄(這個你隨意,用來放項目的): test
進入test:cd test
執行:
mvn archetype:create -DgroupId=com.maven.test -DartifactId=hello -DpackageName=com.maven.test -Dversion=1.0
運行結果以下,建立成功
E:\wier\test> mvn archetype:create -DgroupId=com.maven.test -DartifactId=hello - DpackageName=com.maven.test -Dversion=1.0 [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 ....省略 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.484s [INFO] Finished at: Tue Mar 03 11:04:39 CST 2015 [INFO] Final Memory: 14M/155M [INFO] ------------------------------------------------------------------------
以上省略的部分有些在下載jar包,會比較耗時,等待一下子,執行到 build success的時候就算是成功了。
成功後,hello目錄以下:
└── hello └── src └── main └── java └── com └── com └── maven └── App.java └── pom.xml
其中pom.xml比較重要,全部的依賴都有它維護,後面會介紹詳細的,這裏咱們只關注:
<groupId>com.maven.test</groupId> <artifactId>hello</artifactId> <version>1.0</version>
這個是項目的信息.
進入 hello 項目
cd hello
養成好習慣,咱們在編譯前,先clean下,而後依次的步驟爲:clean(清理),compile(編譯),Package(打包,可選)
clean ,清理會把項目依賴的不存在的包從新下載檢測下,沒有的下載。
E:\wier\test\hello>mvn clean [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building hello 1.0 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ hello --- [INFO] Deleting E:\wier\test\hello\target [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.335s [INFO] Finished at: Tue Mar 03 11:26:37 CST 2015 [INFO] Final Memory: 4M/123M [INFO] ------------------------------------------------------------------------
compile(編譯),編譯爲可運行.
E:\wier\test\hello>mvn compile [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building hello 1.0 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ hello --- [debug] execute contextualize [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory E:\wier\test\hello\src\main\resources [INFO] [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ hello --- [INFO] Compiling 1 source file to E:\wier\test\hello\target\classes [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.079s [INFO] Finished at: Tue Mar 03 11:28:37 CST 2015 [INFO] Final Memory: 11M/155M [INFO] ------------------------------------------------------------------------
Package(打包,可選),通常到compile的時候編譯就完成,如果想打包,能夠執行這個命令.
E:\wier\test\hello>mvn package [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building hello 1.0 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ hello --- ...省略 Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-jar-plugin:2.3.2:jar (default-jar) @ hello --- [INFO] Building jar: E:\wier\test\hello\target\hello-1.0.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.247s [INFO] Finished at: Tue Mar 03 11:32:45 CST 2015 [INFO] Final Memory: 13M/155M [INFO] ------------------------------------------------------------------------
咱們來運行測試看下:
E:\wier\test\hello>java -cp target\hello-1.0.jar com.maven.test.App Hello World!
最經典的 hello world 就出來了。
項目須要引入新包,此時咱們維護pom.xml配置就能夠,dependencies 用來維護引入包。
好比咱們要加入spring-data-mongodb 項目的全部依賴包,
找到pom.xml,打開,找到dependencies,加入以下配置:
<!-- spring-data-mongodb 的jar引入--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.5.5.RELEASE</version> </dependency>
保存後,運行下:
mvn clean
maven就會自動下載相關的jar,並引入到項目
項目有時候須要用到最新的包,此時只須要 找到對應的dependency ,而後修改下 version便可,而後再執行下:mvn clean
好比咱們要把spring-data-mongodb 更新到最新的1.6.2.RELEASE
<!-- spring-data-mongodb 的jar引入--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <!-- 更改版本號--> <version>1.6.2.RELEASE</version> </dependency>
保存以後執行:
mvn clean
開發工具都會用到eclipse,目前的項目是沒辦法導入到eclipse ,目錄結構不適合eclipse 。
第一步,讓hello項目改變爲eclipse目錄結構.執行命令:
cd hello mvn eclipse:eclipse
運行後目錄結構以下:
第二步,配置eclipse
安裝maven就不介紹了,網上本身mark, 這個安裝介紹不錯:maven安裝
我只說下基本配置,三個地方須要處理下。
位置1: maven安裝目錄
Window --> Preferences -->Maven -->Installations
eclipse 此處設置maven的安裝地址,點擊add ,設置maven的安裝目錄.
位置2: Settings ,設置maven 的 setting.xml 配置文件
Window --> Preferences -->Maven -->User Settings
點擊Browe,指定maven的setting.xml配置.
位置3:指定maven倉庫地址
Window----Perferences-----java-----Build Path-----Classpath Variables
點擊new ,新創個name爲:M2_REPO path爲:E:\develop\apache\.m2
path爲倉庫地址。
以上配置完畢以後,就能夠導入項目到eclipse 了。
hello的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.maven.test</groupId> <artifactId>hello</artifactId> <version>1.0</version> <packaging>jar</packaging> <name>hello</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- spring-data-mongodb 的jar引入--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.6.2.RELEASE</version> </dependency> </dependencies> </project>
Ø project:pom.xml文件中的頂層元素;
Ø modelVersion:指明POM使用的對象模型的版本。這個值不多改動。
Ø groupId:指明建立項目的組織或者小組的惟一標識。GroupId是項目的關鍵標識,典型的,此標識以組織的徹底限定名來定義。好比,org.apache.maven.plugins是全部Maven插件項目指定的groupId。
Ø artifactId:指明此項目產生的主要產品的基本名稱。項目的主要產品一般爲一個JAR文件。第二,象源代碼包一般使用artifactId做爲最後名稱的一部分。典型的產品名稱使用這個格式: <artifactId>- <version>. <extension>(好比:myapp-1.0.jar)。
Ø version:項目產品的版本號。Maven幫助你管理版本,能夠常常看到SNAPSHOT這個版本,代表項目處於開發階段。
Ø name:項目的顯示名稱,一般用於maven產生的文檔中。
Ø url:指定項目站點,一般用於maven產生的文檔中。
Ø description:描述此項目,一般用於maven產生的文檔中。
validate:驗證工程是否正確,全部須要的資源是否可用。
compile:編譯項目的源代碼。
test:使用合適的單元測試框架來測試已編譯的源代碼。這些測試不須要已打包和佈署。
Package:把已編譯的代碼打包成可發佈的格式,好比jar。
integration-test:若有須要,將包處理和發佈到一個可以進行集成測試的環境。
verify:運行全部檢查,驗證包是否有效且達到質量標準。
install:把包安裝在本地的repository中,能夠被其餘工程做爲依賴來使用。
Deploy:在集成或者發佈環境下執行,將最終版本的包拷貝到遠程的repository,使得其餘的開發者或者工程能夠共享。
clean:清除先前構建的artifacts(在maven中,把由項目生成的包都叫做artifact)。
site:爲項目生成文檔站點。