最近都在使用maven來(lái)開(kāi)發(fā)系統(tǒng)雷袋,關(guān)于maven以前了解的不多吉殃,現(xiàn)在統(tǒng)一整理成一個(gè)使用手冊(cè)。
1.setting.xml
1.1概要
setting.xml
是maven的配置文件楷怒,其基本結(jié)構(gòu)如下所示:
<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/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
setting.xml
文件位于:
$M2_HOME/conf/settings.xml
${user.home}/.m2/settings.xml
兩個(gè)配置文件都能夠發(fā)揮作用蛋勺,當(dāng)然,用戶(hù)專(zhuān)屬的settings.xml
有優(yōu)先權(quán)鸠删。
顯然抱完,settings.xml
能夠定義maven的一些行為。
一般來(lái)說(shuō)刃泡,公司內(nèi)部會(huì)有公共的settings.xml
巧娱,只需要copy一份到~/.m2
文件夾下就能發(fā)揮作用。
1.2各項(xiàng)配置的作用
<interactiveMode>true</interactiveMode>
<usePluginRegistry>false</usePluginRegistry>
<offline>false</offline>
- localRepository:這是本地倉(cāng)庫(kù)的地址烘贴。默認(rèn)是
~/.m2
路徑禁添。 - interactiveMode:默認(rèn)為true,這決定了用戶(hù)輸入時(shí)的交互形式桨踪。
- usePluginRegistry:如果需要通過(guò)配置管理插件老翘,配置路徑:
${user.home}/.m2/plugin-registry.xml
。默認(rèn)為false锻离,即不配置铺峭。 - offline:當(dāng)需要離線環(huán)境時(shí),可以將此配置文件配置為false纳账。(比如說(shuō)公司網(wǎng)絡(luò)掛了)
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
pluginGroups用來(lái)配置mvn插件逛薇,比如說(shuō)上面的code,會(huì)安裝jetty插件疏虫。運(yùn)行方法為:
mvn jetty:run
1.3配置私服
setting.xml
最重要的一個(gè)功能就是能夠指定私服
永罚。私服
的重要意義在于啤呼,可以在中心maven服務(wù)器任意發(fā)布jar包,不用擔(dān)心泄密呢袱。
<servers>
<server>
<id>server001</id>
<username>my_login</username>
<password>my_password</password>
<privateKey>${user.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
</server>
</servers>
- id username password:根據(jù)私服的設(shè)置來(lái)配置id 用戶(hù)名和密碼官扣。
- privateKey, passphrase:如果私服位于外網(wǎng),那么配置公鑰登錄就是必須的羞福。更詳細(xì)的內(nèi)容參考:http://maven.apache.org/guides/mini/guide-encryption.html
- filePermissions, directoryPermissions: 下載下來(lái)的文件和目錄權(quán)限控制惕蹄,一般默認(rèn)就好。
<profiles>
<profile>
...
<repositories>
<repository>
<id>codehausSnapshots</id>
<name>Codehaus Snapshots</name>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<url>http://snapshots.maven.codehaus.org/maven2</url>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
...
</pluginRepositories>
...
</profile>
</profiles>
- releases, snapshots: 控制當(dāng)
releases, snapshots
,需要只讓snapshots下載時(shí)有用治专。 - enabled:可用性
- updatePolicy:更新政策
- checksumPolicy:校驗(yàn)政策
- layout:默認(rèn)就好
2.pom.xml
2.1 概要
pom的意思是Project Object Model
,是用來(lái)配置項(xiàng)目環(huán)境的文件卖陵。
所有的參數(shù)如下所示:
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- The Basics -->
<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<packaging>...</packaging>
<dependencies>...</dependencies>
<parent>...</parent>
<dependencyManagement>...</dependencyManagement>
<modules>...</modules>
<properties>...</properties>
<!-- Build Settings -->
<build>...</build>
<reporting>...</reporting>
<!-- More Project Information -->
<name>...</name>
<description>...</description>
<url>...</url>
<inceptionYear>...</inceptionYear>
<licenses>...</licenses>
<organization>...</organization>
<developers>...</developers>
<contributors>...</contributors>
<!-- Environment Settings -->
<issueManagement>...</issueManagement>
<ciManagement>...</ciManagement>
<mailingLists>...</mailingLists>
<scm>...</scm>
<prerequisites>...</prerequisites>
<repositories>...</repositories>
<pluginRepositories>...</pluginRepositories>
<distributionManagement>...</distributionManagement>
<profiles>...</profiles>
</project>
2.2基礎(chǔ)
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.codehaus.mojo</groupId>
<artifactId>my-project</artifactId>
<version>1.0</version>
</project>
groupId:包名,與此同時(shí)张峰,項(xiàng)目會(huì)在mvn install
之后放入~/m2/repository/xxx
對(duì)應(yīng)的路徑下泪蔫。
artifactId:應(yīng)用名
version:版本號(hào)