
Maven 3.2 需要 JDK 1.6, Maven 3.0/3.1 需要 JDK 1.5
· 解壓.
· 環境變量 M2_HOME
· M2 = %M2_HOME%/bin 同時也添加到PATH
· 可選的: MAVEN_OPTS = -Xms256m -Xmx512m -Dmaven.artifact.threads=3 (多線程下載,默認5)
· 當然,也要有java_HOME
運行 mvn –version 測試
有兩個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/> <interactiveMode/> <usePluginRegistry/> 無用 <offline/> <pluginGroups/> <servers/> 略 <mirrors/> 略 <proxies/> 略 <profiles/> <activeProfiles/> </settings>
里面的設置可以用表達式的:
但 profiles 里定義的屬性不能這樣引用
<localRepository>${user.home}/.m2/repository</localRepository> 本地代碼庫位置,必須為絕對路徑 <interactiveMode>true</interactiveMode> 是否提示,選擇123 <usePluginRegistry>false</usePluginRegistry> <offline>false</offline> 默認總是聯機<pluginGroups> <pluginGroup>org.mortbay.jetty</pluginGroup> 默認org.apache.maven.plugins , org.codehaus.mojo </pluginGroups>
如果像上面這樣設置了,要運行org.mortbay.jetty:jetty-maven-plugin:run
就可以直接 mvn jetty:run
Setting.xml的profile是 pom.xml里 profile的壓縮版. 包括了
activation(激活條件), repositories, pluginRepositories , properties(可定義特定屬性)
因為他只關心全局設置,跟具體項目無關
如果生效,將覆蓋具體的 POM或 profiles.xml設置
1.
<profiles> <profile> <id>test</id> <activation> 激活條件,要全部匹配 <activeByDefault>false</activeByDefault>默認激活 <jdk>1.5</jdk> <os> <name>Windows xp</name> <family>Windows</family> <arch>x86</arch> <version>5.1.2600</version> </os> <property>如果有某個屬性符合(Maven3中也搜索Settings.xml) <name>mavenVersion</name> <value>2.0.3</value>沒有value也可,表示只要定義過 </property> <file> <exists>${basedir}/file2.properties</exists> <missing>target/generated-sources/axistools/wsdl2java/org/apache/maven</missing>如果某個文件不存在 </file> </activation> ... </profile> </profiles>
2.
<profiles> <profile> ... <properties> 生效時的特定屬性 <user.install>${user.home}/our-project</user.install> </properties> ... </profile> </profiles>Profile里的properties可以在pom.xml用表達式${xx}任意引用,具體可以有以下方式:
3.
<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>
<updatePolicy>可以是以下值:always, daily (默認), interval:X (幾分鐘) ,never.
<checksumPolicy>可以是以下值:ignore, fail, warn
4.pluginRepositories 插件代碼庫,結構同上
activation 并不是讓profile生效的唯一方式. activeProfile 里也可以
<activeProfiles> <activeProfile>env-test</activeProfile> profile的id </activeProfiles>
將會在pom.xml和profile.xml中尋找該profile(Maven3已不再使用profile.xml)
也可以在命令行中 –p 顯式啟用
mvn groupId:artifactId:goal -P profile-1,profile-2
或顯示禁用
mvn groupId:artifactId:goal -P !profile-1,!profile-2
mvn help:active-profiles 可查看當前啟用的profile

新聞熱點
疑難解答