在開發過程當中會用到maven,因此對maven進行了簡單的學習。java
準備工做web
將下載的文件加壓,而後設置maven環境,對於有java開發經驗的人,應該是很easy的。如的maven的環境是: G:\maven\apache-maven-3.3.1
個人電腦----屬性----高級----環境變量----新建apache
變量名:M2_HOME
變量值:G:\maven\apache-maven-3.3.1windows
找到path環境變量
在環境的變量的尾部加上:;%M2_HOME%\bin;,注意前面的分號哦,固然你也能夠直接在path路徑的尾部直接加上 G:\maven\apache-maven-3.3.1\bin,只是上面的方式更優雅一點。oracle
打開命令提示符(開始----運行----cmd),檢查maven環境是否配置成功。運行下面命令app
mvn -veclipse
Apache Maven 3.3.1 (cab6659f9874fa96462afef40fcf6bc033d58c1c; 2015-03-14T04:10:27+08:00) Maven home: G:\maven\apache-maven-3.3.1 Java version: 1.7.0_09, vendor: Oracle Corporation Java home: C:\Java\jdk1.7.0_09\jre Default locale: zh_CN, platform encoding: GBK OS name: "windows 8", version: "6.2", arch: "x86", family: "windows"
接下來須要修改下倉庫地址,倉庫用於存放咱們項目因此來的全部的jar
個人倉庫路徑:G:\maven\repo,這個路徑你能夠隨便建立。
打開maven的安裝目錄,進入到G:\maven\apache-maven-3.3.1\conf,編輯setting.xml文件,設置咱們建立的倉庫路徑webapp
<localRepository>G:/maven/repo</localRepository>
設置完成以後,能夠用一個命令驗證一下。在命令提示符中執行:maven
mvn help:system工具
這個命令會打印出全部的java系統屬性和環境變量。若是運行沒有錯誤,在咱們建立的那個倉庫目錄中會多出不少文件、這些文件就是從maven的中央倉庫下載到本地倉庫的。
在命令提示符中執行:
mvn archetype:generate -DgroupId=com.app -DartifactId=first-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
對上面命令解釋一下:
-DgroupId 組織標識(包名) -DartifactId 項目名稱 -DarchetypeArtifactId 指定ArchetypeId,maven-archetype-quickstart,建立一個Java Project;maven-archetype-webapp,建立一個Web Project -DinteractiveMode 是否使用交互模式
ps:由於是第一次構建項目,全部依賴的jar包都要從maven的中央倉庫去下載,因此須要等待一段時間。
標準maven項目的結構
└─src ├─main │ └─java │ └─com │ └─app └─test └─java └─com └─app
src/main/java 存放項目的源代碼
src/test/java 存放測試源代碼
若是要存放一些配置文件,能夠再創建一個目錄src/main/resource存放,如存放log4j.properties等
順便了解下pom.xml文件。
pom.xml包含了項目構建的信息,包括項目的信息、項目的依賴等。
pom.xml文件是能夠繼承的,大型項目中,子模塊的pom.xml通常都會繼承於父模塊的pom.xml
剛建立的項目中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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.app</groupId> <artifactId>first-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>first-app</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>
節點元素說明
<project> pom文件的頂級節點 <modelVersion> object model版本,對Maven2和Maven3來講,只能是4.0.0 <groupId> 項目建立組織的標識符,通常是域名的倒寫 <artifactId> 定義了項目在所屬組織的標識符下的惟一標識,一個組織下能夠有多個項目 <packaging> 打包的方式,有jar、war、ear等 <version> 當前項目的版本,SNAPSHOT,表示是快照版本,在開發中 <name> 項目的名稱 <url> 項目的地址 <dependencies> 構建項目依賴的jar <description> 項目的描述
Maven參數
-D 傳入屬性參數
-P 使用pom中指定的配置
-e 顯示maven運行出錯的信息
-o 離線執行命令,即不去遠程倉庫更新包
-X 顯示maven容許的debug信息
-U 強制去遠程參考更新snapshot包
例如 mvn install -Dmaven.test.skip=true -Poracle
其餘參數能夠經過mvn help 獲取
Maven經常使用命令
mvn clean # 清理項目生產的臨時文件,通常是模塊下的target目錄
mvn compile # 編譯項目主代碼
mvn test-compile # 編譯測試代碼
mvn package # 項目打包工具,會在模塊下的target目錄生成jar或war等文件
mvn test # 測試命令,或測試src/test/java下junit的測試用例
mvn site-deploy # 生產站點目錄並打包
mvn install # 模塊安裝命令,將打包的jar/war文件複製到你的本地倉庫中,供其餘模塊使用
mvn clean package # 先清除再打包
mvn jar:jar # 打成jar包
-Dmaven.test.skip=true # 跳過測試(同時會跳過test compile)
mvn deploy # 發佈命令,將打包的文件發佈到遠程,提供其餘人員進行下載依賴
mvn eclipse:eclipse # 生成eclipse配置文件,導入到eclipse開放
mvn archetype:generate # 說明以下: 模塊建立命令, 執行命令後,會提示選擇建立項目的模版,這裏選18(maven-archetype-quickstart)
mvn help:help # 查看幫助信息
建立web項目的命令以下:
mvn archetype:generate -DgroupId=com.app -DartifactId=first-web-app -DarchetypeArtifactId=maven-archetype-webapp -DinteractivMode=false