Maven介紹
簡介
Maven是由Apache公司用純Java開發的開源項目,用來管理我們的開發項目。
Maven是一個項目管理工具,可以對Java項目構建,依賴管理。具體可以看百度百科.
一般項目開發都會使用項目管理工具來幫助開發人員進行項目管理,而Maven已然成為大多數開發人員的選擇。
安裝
- 進入官網下載bin.zip文件
- 解壓到C盤的User目錄下(Dogs,我的解壓目錄)
- 配置環境變量:
- 新建系統變量 MAVEN_HOME:
- 編輯系統變量 Path:
- 新建系統變量 MAVEN_HOME:
- 檢查是否安裝成功:打開CMD輸入-->
mvn -v
即可檢查Maven版本相關信息。
修改settings.xml配置文件
打開Maven安裝目錄的conf文件夾下的settlings.xml文件
修改鏡像地址
maven默認依賴下載地址是外網,下載速度慢,將其改成阿里鏡像提高jar包下載
找到mirrors標簽,將默認的mirror標簽內容修改成如下
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
修改本地倉庫的存放位置
如果不想每次使用Maven添加依賴都從網上下載,就需要創建本地的Maven依賴倉庫,只需要在Maven管理的項目中指定依賴導入的倉庫即可直接添加不需要下載(只要由對應依賴的版本號)。
直接在根標簽下添加如下內容即可:
<localRepository>C:\Users\CNDA\maven\repository</localRepository>
settings.xml是給Maven看的,如果你想根據需求使用不同的settings.xml可以創建多個settings.xml但是名字必須是settings.xml,這意味着你必須在Maven管理中指定要使用的settings.xml具體路徑。一般來說一個夠用了。
配合idea使用
現階段我們一般使用idea進行開發,那么我們就需要在idea中使用Maven管理我們的項目。
-
在idea中創建maven項目
直接選中Maven點擊next即可
創建好了之后,項目結構應該如圖所示:
-
Maven項目結構目錄介紹
- main目錄下有兩個文件夾
- java:我們項目的源代碼,也就是我們普通Java項目src下的目錄結構
- resources:項目中需要的配置資源文件在此目錄下
- test:項目測試使用的結構目錄,此文件下的所有文件都不會被編譯到最終結果中(大致結構與main相同)
- target:目錄存放編譯打包的結果(項目的最終編譯結果,跟src同級目錄)
- pom.xml:是maven項目的配置文件,根據pom.xml中的規定來管理項目的依賴和構建。
- main目錄下有兩個文件夾
管理SSM項目
SSM開發的項目最后部署在tomcat中,我們使用idea創建一個被Maven管理的web項目。
記得勾選Create from archetype,然后選中上圖所示的maven-archetype-webapp
,然后Next。
Maven home path :選擇你的maven根目錄
User settings file: 選擇你的settings.xml文件路徑
Local repository: 選擇你的依賴倉庫
點擊Finish
完整SSM的Maven項目如下:
如果創建項目時main下沒有文件夾,也沒有test文件夾,則需要我們手動創建並配置。
直接如上圖的結構創建目錄即可,然后標記目錄,右鍵需要標記的目錄找到mark directory as
,java目錄就選Sources Root,main下的resources就選Resources Root,test下的java和resources就選前面帶有Test就行。到此用Maven管理SSM項目就完成了。
注意:如果pom.xml中pluginManagement
標簽下的maven插件依賴報錯,直接將其刪除即可,我也不知道具體原因為什么版本報錯,反正我即使更改版本不報錯也用不了插件。所以刪除插件並不影響我們程序的編寫和正常使用Maven的功能。
SSM項目中解決Mapper.xml和resources中文件不能被maven編譯打包問題
在SSM項目中,我們不只有java文件,還有在Mapper層中的Mapper.xml文件和resources文件下的相關配置文件,但是maven默認只會將我們所有java文件和webapp下的文件進行打包,並不會將mapper.xml文件和配置文件進行打包,這樣就導致我們部署在tomcat中的war包中沒有對應的文件導致報錯,所以我們需要告訴Maven,讓maven將我們的文件進行打包。
pom.xml配置如下:
<build>
<!--
有時候,比如mybatis的mapper.xml文件,我們習慣把它和Mapper.java放一起,都在src/main/java下面,這樣利用maven打包時,
就需要修改pom.xml文件,來把mapper.xml文件一起打包進jar或者war里了,否則,這些文件不會被打包的。
-->
<!-- 資源目錄 -->
<resources>
<resource>
<!-- 設定主資源目錄 -->
<directory>src/main/java</directory>
<!-- 需要讀取的文件 -->
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<!-- 講resources下配置文件加載到war包的classes中 -->
<resource>
<!-- 設定主資源目錄 -->
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
編譯打包后,我們的mapper.xml文件和resources下的文件就會被maven打到war包下,配置文件會移到WEB-INF下的classes中。
打包
除了web項目是打成war包發布在服務器上,其他都是打成jar包,打包的方式有多種,其中就說一個最基本的打包方式,打jar包並不是說運行程序就完成了打包,那target中有我們編譯的class文件,並不會生成jar包,我們需要點擊idea右側欄的maven中的package
然后Run中會出現打包的相關信息
可以看到打包的類型是jar類型,而jar包的路徑在Building jar
中給出。
小結
我們以后會頻繁的使用到maven來管理我們的中大型項目,特別是團隊開發,可能還會使用到Git工具,使用maven管理項目非常的方便,不只體現在依賴導入,構建,打包等都會方便。