自動(dòng)建立目錄骨架
Maven創(chuàng)建目錄的兩種方式:
1.archetype:generate 按照提示進(jìn)行選擇。
2.archetype:generate -DgourpId=組織名,公司網(wǎng)址的反寫(xiě)+項(xiàng)目名稱
-DartifactId=項(xiàng)目名-模塊名
-Dversion=版本號(hào)
-Dpackage=代碼所在的包名
實(shí)例:
mvn archetype:generate -DgroupId=com.imooc.maven04 -DartifactId=maven04-demo -Dversion=1.0.0-SNAPSHOT -Dpackage=com.imooc.maven04-demo
Maven中的坐標(biāo)和倉(cāng)庫(kù)
http://www.mvnrepository.com/ 這個(gè)是官網(wǎng)
1、坐標(biāo)。
2、構(gòu)件通過(guò)坐標(biāo)作為其唯一標(biāo)識(shí)。
3、倉(cāng)庫(kù):
-本地倉(cāng)庫(kù)。
-遠(yuǎn)程倉(cāng)庫(kù):maven-model-builder-3.3.3.jar\org\apache\maven\model,超級(jí)pom.xml文件,全球中央倉(cāng)庫(kù)地址:https://repo.maven.apache.org/maven2
-鏡像倉(cāng)庫(kù):/conf/setting文件:
<mirror>
<id>maven.net.cn</id>
<mirrorOf>central</mirrorOf>
<name>central mirror in china</name>
<url>http://maven.net.cn/content/groups/public</url>
</mirror>
4、修改本地倉(cāng)庫(kù)的位置:<localRepository>D:/Maven/repository</localRepository>
Ps:一旦配置了鏡像倉(cāng)庫(kù),那么先前的所有配置都會(huì)轉(zhuǎn)到鏡像倉(cāng)庫(kù)中。
默認(rèn)倉(cāng)庫(kù)位置.m2 repository,將settings.xml復(fù)制到更改后的本地倉(cāng)庫(kù)中,這樣maven版本更新了,也不用修改settings.xml了
Maven的生命周期
clean 清理項(xiàng)目:又分為三個(gè)階段(pre-clean執(zhí)行清理前的工作、clean清理上一次構(gòu)建生成的所有文件、post-clean執(zhí)行清理后的文件)
default 構(gòu)建項(xiàng)目(最核心):compile、test、package、install都屬于default
site 生成項(xiàng)目站點(diǎn)(根據(jù)POM的信息自動(dòng)生成站點(diǎn)):pre-site 在生成項(xiàng)目站點(diǎn)前要完成的工作、site 生成項(xiàng)目的站點(diǎn)文檔、
post-site 在生成項(xiàng)目站點(diǎn)后要完成的工作、site-deploy 發(fā)布生成的站點(diǎn)到服務(wù)器上
如下:使用source插件將項(xiàng)目的源碼打包,使用命令 clean package
項(xiàng)目管理利器(Maven)——Pom.xml解析
<name>項(xiàng)目的描述名</name>
<url>項(xiàng)目的地址</url>
<description>項(xiàng)目描述</description>
<developers>開(kāi)發(fā)人員信息</developers>
<licenses>許可證信息</licenses>
<!-- 依賴列表 -->
<dependencies>
<!-- 依賴項(xiàng) -->
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<type></type>
<scope>依賴的范圍</scope>
<optional>設(shè)置依賴是否可選,默認(rèn)是false</optional>
<!-- 排除依賴傳遞列表 -->
<exclusions>
<exclusion></exclusion>
</exclusions>
</dependency>
</dependencies>
<!-- 依賴的管理,一般定義在父模塊中,由子模塊去繼承 -->
<dependencyManagement>
<dependencies>
<dependency></dependency>
</dependencies>
</dependencyManagement>
<!-- 對(duì)構(gòu)建行為提供相應(yīng)的支持 -->
<build>
<!-- 插件列表 -->
<plugins>
<plugin>
<!-- 指定坐標(biāo) -->
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</plugin>
</plugins>
</build>
<!-- 一般在子模塊中指定所繼承的父模塊 -->
<parent></parent>
<!-- 模塊列表 -->
<modules>
<module></module>
</modules>
Maven 配置web項(xiàng)目
1:打開(kāi)Eclipse
2:創(chuàng)建Maven項(xiàng)目,選擇archetype-webapp模板
3:解決Servlet沒(méi)有生命依賴的問(wèn)題,在pom.xml中添加servlet的依賴,可以去中央倉(cāng)庫(kù)選擇servlet版本
例如:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0-b01</version>
</dependency>
4:手工完善Maven約定好的目錄結(jié)構(gòu)
可以在navigator窗口中手動(dòng)新建
../src/main/java
../src/test/java
5:Project Explorer中更新項(xiàng)目
6:創(chuàng)建項(xiàng)目的輸出目錄
build path中設(shè)置輸出路徑output folder,確保每個(gè)module都輸出在../tartet/classes目錄中
7:將Maven項(xiàng)目轉(zhuǎn)換為Web項(xiàng)目
右擊-屬性-project facets-勾選動(dòng)態(tài)模板(Dynamic Web Module)
8:修改部署時(shí)配置去掉多余的配置項(xiàng)例如:測(cè)試代碼
右擊-屬性-Deployment Assembly-刪除多余的配置項(xiàng)(測(cè)試代碼)
9:使用package命令打包項(xiàng)目—使用jetty這個(gè)插件(在Maven的中央插件庫(kù)中尋找)作為Web容器,在中央倉(cāng)庫(kù)查找jetty的plugin坐標(biāo)配置到pom.xml中
pom.xml例子:
<build>
<finalName>webbproject-demo</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>