Maven是什麼?
Maven是一個項目管理和綜合工具。Maven提供了開發人員構建一個完整的生命週期框架。Maven使用標準的目錄結構和默認構建生命週期,所有的項目都有如下的結構:
MavenProjectRoot(項目根目錄)
|—-src
| |—-main
| | |—-java ——存放項目的.java文件
| | |—-resources ——存放項目資源文件,如spring, hibernate配置文件
| |—-test
| | |—-java ——存放所有測試.java文件,如JUnit測試類
| | |—-resources ——存放項目資源文件,如spring, hibernate配置文件
|—-target ——項目輸出位置
|—-pom.xml —-用於標識該項目是一個Maven項目
Maven的安裝
官網下載http://maven.apache.org/download.html(apache-maven-3.3.9)下載後解壓到磁盤目錄,這裏解壓到了E:\29-Maven\apache-maven-3.3.9目錄
配置環境變量
直接在 Path 添加E:\29-Maven\apache-maven-3.3.9\bin;即可。在檢測是否安裝成功之前,說明一點,在首次執行 mvn -v 會在用戶目錄下創建一個 .m2 的目錄,這個目錄就是 Maven 的本地倉庫,可以通過更改配置文件修改 Maven的默認倉庫位置,修改E:\29-Maven\apache-maven-3.3.9\conf\settings.xml
<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: ${user.home}/.m2/repository
| 修改默認位置
-->
<localRepository>E:/29-Maven/repository</localRepository>
mvn -v 顯示正常,安裝完畢
關於Maven倉庫,我們的每個項目都會引用相同的 jar包,如果每個項目都拷貝一份,如果都複製拷貝不僅浪費磁盤空間,而且版本也不好管理。而Maven倉庫把這些 jar包統一管理起來,所有的Maven項目只需要按照配置的依賴關係,從倉庫中引用即可。
首次運行Maven時會從網絡下載相應的文件,比較慢
創建一個 Maven項目
mvn archetype:generate
-DgroupId 項目包名com.springmvc
-DartifactId 項目名稱springMVCStudy
-DarchetypeArtifactId 使用的項目模板 (1)Java工程模版-maven-archetype-quickstart (2)Web項目模版 maven-archetype-webapp
-DinteractiveMode=false 是否使用交互模式
創建JavaProject項目
mvn archetype:generate -DgroupId=com.springmvc -DartifactId=springMVCStudy -DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
如圖:表示創建完畢
編譯:mvn clean compile(編譯好的class文件放在target文件夾下)
測試:mvn clean test(測試程序成功後會在target下生成一個test-classes目錄)
打包:mvn clean package(會在target目錄下生成springMVCStudy-1.0-SNAPSHOT.jar文件)
安裝:mvn clean install(把生產的jar文件上傳到Maven本地倉庫)
運行:java -cp target\springMVCStudy-1.0-SNAPSHOT.jar com.springmvc.App
創建JavaWeb項目
mvn archetype:generate -DgroupId=com.springmvc -DartifactId=demo-springmvc -DarchetypeArtifactId=maven-archetype-webapp
-DinteractiveMode=false
手動添加src/main/java、src/test/java、src/test/resources目錄
使用mvn package打包生成war文件,放在Tomcat-webapp文件下啓動即可訪問
使用MyEclipse 創建JavaWeb項目
選擇新建Maven project,選擇webapp模板
手動添加src/main/java、src/test/java、src/test/resources目錄如圖
如果出現src/main/java已經存在那麼在項目上右鍵選擇properties,然後點擊java build path,在Librarys下,編輯JRE System Library,選擇workspace default jre就可以了
部署Web項目的幾種方法
運用Maven的plugin:jetty來部署web
(1)配置pom.xml文件
在節點<build><plugins>…</plugins></build>
中配置Jetty插件依賴如下
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
<configuration>
<!-- 修改默認端口號8080 -->
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>4080</port>
</connector>
</connectors>
<webAppSourceDirectory>${basedir}/src/main/webapp</webAppSourceDirectory>
</configuration>
</plugin>
(2)配置goals參數
右鍵項目Run As -> Maven build… ->Goals: jetty:run
注意:如果報錯-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
在Window->Preference->Java->Installed JREs->Edit
在Default VM arguments中設置
-Dmaven.multiModuleProjectDirectory=$M2_HOME
在8080端口啓動了jetty服務
在瀏覽器訪問
運用Run on Server(tomcat)部署
(1)首先轉爲MyEclipse Web項目
cmd進入項目所在目錄下使用mvn eclipse:eclipse -Dwtpversion=2.0
(2)然後部署到Tomcat運行即可
Maven整合MyBatis時總是漏掉映射文件的解決方法:
在pom.xml文件中的build節點中,添加如下代碼:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
Maven學習總結:http://www.cnblogs.com/xdp-gacl/p/4240930.html
Maven構建web項目在Eclipse中部署的幾種方法:http://www.micmiu.com/software/build/maven-web-eclipse-deploy/