maven入門知識
一. maven簡介
Apache Maven丸升,是一個軟件(特別是Java軟件)項(xiàng)目管理及自動構(gòu)建工
具趁尼,由Apache軟件基金會所提供⌒栉澹基于項(xiàng)目對象模型(縮寫:POM)概念,
Maven利用一個中央信息片斷能管理一個項(xiàng)目的構(gòu)建辆苔、報(bào)告和文檔等步驟亮钦。
Maven也可被用于構(gòu)建和管理各種項(xiàng)目,例如C#抖锥,Ruby,Scala和其他語
言編寫的項(xiàng)目碎罚。Maven曾是Jakarta項(xiàng)目的子項(xiàng)目磅废,現(xiàn)為由Apache軟件基
金會主持的獨(dú)立Apache項(xiàng)目。---摘自維基百科.
Maven項(xiàng)目使用項(xiàng)目對象模型(Project Object Model魂莫,POM)來配置还蹲。
項(xiàng)目對象模型存儲在名為 pom.xml 的文件中。
以下是一個簡單的示例:
<project>
<!-- model version is always 4.0.0 for Maven 2.x POMs -->
<modelVersion>4.0.0</modelVersion>
<!-- project coordinates, i.e. a group of values which
uniquely identify this project -->
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0</version>
<!-- library dependencies -->
<dependencies>
<dependency>
<!-- coordinates of the required library -->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<!-- this dependency is only used for running and compiling tests -->
<scope>test</scope>
</dependency>
</dependencies>
</project>
二.maven主要解決開發(fā)過程的兩個問題:
- 項(xiàng)目文件jar包比較多,項(xiàng)目大小太大,使用maven構(gòu)建項(xiàng)目,把依賴包分離,大大減小項(xiàng)目的大小.
- jar包相互之間的依賴關(guān)系,版本沖突問題.maven會自動處理相互之間的依賴,減少了手動添加的繁雜.只需要在pom.xml文件添加需要的依賴即可.maven的依賴管理,就是管理jar包的一個過程.
三.maven的安裝
1.http://maven.apache.org/download.cgi官網(wǎng)下載最新版本
mac選擇下載: apache-maven-3.5.0-bin.zip
2. 解壓到本地,我的解壓路徑:/Users/xiaoq/Documents/maven
3. 在終端輸入命令:vim ~/.bash_profile,在里面的文件插入:
export M2_HOME=/Users/xiaoq/Documents/maven/apache-maven-3.5.0
export PATH=$PATH:$M2_HOME/bin
進(jìn)行保存退出esc->:wq
終端運(yùn)行:source ~/.bash_profile
在運(yùn)行:mvn -v
如果沒有報(bào)錯,表示maven配置成功
四.本地倉庫配置和鏡像代理配置
1.創(chuàng)建repository文件夾(我的配置位置:/Users/xiaoq/Documents/work/repository)
2. 找到maven解壓文件下的conf文件下的settings.xml文件,打開進(jìn)行編輯
4.1 配置本地倉庫
<localRepository>/Users/xiaoq/Documents/work/repository</localRepository>
4.2 配置鏡像(下載速度回很快,不然訪問外網(wǎng)速度很慢,卡死),
mirros節(jié)點(diǎn)下添加
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>uk</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
4.3 配置默認(rèn)SDK版本,默認(rèn)jse1.5,在profiles節(jié)點(diǎn)下添加:
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
基本配置完成
五.maven目錄結(jié)構(gòu)規(guī)范
project-name
|---src
|---main
|---java
|---resources
|---webapp
|test
|---java
|---resources
六. maven常用的命令
maven
compile: 編譯命令,作用是將src/main/java下的文件編譯為class文件并且輸出到target目錄下.
test: 測試命令,會執(zhí)行src/test/java下的單元測試類
clean: 清除命令,刪除target目錄的內(nèi)容
package: 打包命令,對于Java工程執(zhí)行package命令會打成jar包,對于web工程打成war包
install: 安裝命令,會把maven打成的jar包或者war包發(fā)布到本地倉庫
運(yùn)行命令可以發(fā)現(xiàn),當(dāng)執(zhí)行命令的時候,前面的操作也會自動執(zhí)行,比如執(zhí)行test命令,會自動執(zhí)行clean和compile命令.
clean->compile->test->package->install
七, maven和eclipse結(jié)合使用
高版本eclipse自帶maven插件,只需要配置即可使用
7.1 eclipse配置maven安裝路徑
1.打開eclipse,選擇preference,找到maven選項(xiàng),選擇installations,點(diǎn)擊右邊的add進(jìn)行編輯,選擇本地的maven路徑
最后點(diǎn)擊finish完成
7.2 配置本地倉庫,就是找到剛才建立的repository文件
選擇maven選項(xiàng)的User Settings選項(xiàng):
User Settings選擇找到maven解壓安裝目錄下的settings.xml文件位置(就是第四步編輯的文件)
Local Repository指向自己創(chuàng)建的repository文件的文字
7.3 顯示maven repository窗口
eclipse->Window---show view ------other----------maven Repositories
重構(gòu)索引:右鍵點(diǎn)擊 Local Repositories,點(diǎn)擊 Rebuild Index
- 創(chuàng)建hellomaven工程
File->New->Maven Project ,打鉤create a simple project
->next->Group Id(公司域名com.it.companyname),Artifact Id(項(xiàng)目名稱:hellomaven),Packaging選擇war(web項(xiàng)目)->finish完成即可
8.1 解決報(bào)錯原因
8.1.1:
在webapp目錄下創(chuàng)建文件夾WEB-INF,在WEB-INF下創(chuàng)建web.xml文件,并且寫入web項(xiàng)目的約束.
8.2 創(chuàng)建HelloServlet,訪問路徑設(shè)置為/hello
發(fā)現(xiàn)報(bào)錯,這是缺少jar包導(dǎo)致
8.2.1 解決
打開pom.xml文件,選擇Dependecies選項(xiàng)卡,點(diǎn)擊add按鈕,搜索servlet,選擇jar包,點(diǎn)擊jar包OK即可,等jar包下載完成即可解決,
如果發(fā)現(xiàn)下載完成還是報(bào)錯,可以右點(diǎn)擊工程名,選擇maven->Update Project,再rebuild index
在 HelloServlet類中的doGet方法寫入:response.getWriter().write("Hello Maven!");
8.3運(yùn)行工程
右擊工程->run as ->選擇maven build->輸入tomcat7:run,等待服務(wù)器啟動完成,如果不報(bào)錯,進(jìn)行訪問路徑
如果沒有tomcat7,打開pom.xml加入下面設(shè)置,再次Update Project,rebuild index,運(yùn)行命令:
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
控制臺會打印出訪問路徑,拷貝到瀏覽器,加上訪問路徑/hello,http://localhost:8080/hellomaven/hello如果不出意外,訪問成功,至此,hellmaven構(gòu)建完成.