maven屬性、資源過濾、profile、不同環境構建項目
阿新 • • 發佈:2019-01-10
定義 倉庫 div sources code ngs demo 資源過濾 close
maven針對不同環境構建項目
maven使用屬性、profile及資源過濾支持針對不同環境構建項目
maven屬性
一、maven共有六類屬性
1、最常見的是自定義屬性,即在pom文件裏通過<properties>元素定義的屬性
2、環境變量屬性,可以使用env.引用,可以使用mvn help:system查看所有的環境變量
java.env=${env.JAVA_HOME}
3、系統屬性,也可以使用mvn help:system查看所有的系統屬性
${user.home}指向了用戶目錄,即C:\\Users\\Administrator
user.home=${user.home}
4、setting屬性
localRepository=${settings.localRepository}
5、maven內置屬性
${basedir}表示根目錄
project.basedir=${basedir}
${version}表示項目版本
project.version=${version}
6、pom屬性
源碼目錄 sourceDirectory=${project.build.sourceDirectory} 測試類源碼目錄 testSourceDirectory=${project.build.testSourceDirectory} 構建目錄 directory=${project.build.directory} 構建後class所在的目錄 outputDirectory=${project.build.outputDirectory} 構建後測試類class所在的目錄 testOutputDirectory=${project.build.testOutputDirectory} 項目組Id groupId=${project.groupId} 構件Id artifactId=${project.artifactId} 項目版本 version=${project.version} 構建後jar包或war包的名稱,默認為${project.artifactId}-${project.version} finalName=${project.build.finalName} project可以省略View Code
profile
(1) profile在pom.xml或settings.xml中都可以聲明
pom.xml中的profile只對當前項目有效,用戶settings.xml中的profile對該用戶所有的maven項目有效,全局settings.xml中的profile對本機上所有的maven項目有效
由於pom.xml中的profile能隨著pom.xml一起提交到代碼倉庫中、被安裝到本地倉庫中、被部署到遠程倉庫中,所以pom.xml中的frofile可以聲明的元素很多,如下所示:
<project> <repositories></View Coderepositories> <pluginRepositories></pluginRepositories> <distributionManagement></distributionManagement> <dependencies></dependencies> <dependenyManagement></dependenyManagement> <modules></modules> <properties></properties> <reporting></reporting> <build> <plugins></plugins> <defalutGoal></defalutGoal> <resources></resources> <testResources></testResources> <finalName></finalName> </build> </project>
而settings.xml中可以聲明的元素很少,只支持以下幾個
<project> <repositories></repositories> <pluginRepositories></pluginRepositories> <properties></properties> </project>View Code
(2)demo
<project> ... <profiles> <profile> <id>dev</id> <properties> <db.url>jdbc:mysql://localhost:3306/dev</db.url> <db.username>root</db.username> <db.password>root</db.password> </properties> </profile> <profile> <id>test</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <db.url>jdbc:mysql://localhost:3306/test</db.url> <db.username>test</db.username> <db.password>test</db.password> </properties> </profile> </profiles> </project>View Code
使用profile包裹其它元素聲明與直接使用這些元素聲明並無二致
maven屬性、資源過濾、profile、不同環境構建項目