王某某 2017年2月
通過<properties>元素用戶可以自定義一個或多個Maven屬性,然后在POM的其他地方使用${屬性名}的方式引用該屬性,這種做法的最大意義在于消除重復(fù)和統(tǒng)一管理。
Maven總共有6類屬性,內(nèi)置屬性、POM屬性、自定義屬性、Settings屬性、java系統(tǒng)屬性和環(huán)境變量屬性;
內(nèi)置屬性
兩個常用內(nèi)置屬性 ${basedir} 表示項目跟目錄,即包含pom.xml文件的目錄;${version} 表示項目版本POM屬性
用戶可以使用該類屬性引用POM文件中對應(yīng)元素的值。如${project.artifactId}就對應(yīng)了<project> <artifactId>元素的值,常用的POM屬性包括:
- ${project.build.sourceDirectory}:項目的主源碼目錄,默認為src/main/java/
- ${project.build.testSourceDirectory}:項目的測試源碼目錄,默認為src/test/java/
- ${project.build.directory} : 項目構(gòu)建輸出目錄,默認為target/
- ${project.outputDirectory} : 項目主代碼編譯輸出目錄,默認為target/classes/
- ${project.testOutputDirectory}:項目測試主代碼輸出目錄,默認為target/testclasses/
- ${project.groupId}:項目的groupId
- ${project.artifactId}:項目的artifactId
- ${project.version}:項目的version,與${version} 等價
- ${project.build.finalName}:項目打包輸出文件的名稱,默認為${project.artifactId}-${project.version}
自定義屬性
隨便寫Settings屬性
與POM屬性同理,用戶使用以settings. 開頭的屬性引用settings.xml文件中的XML元素的值。Java系統(tǒng)屬性
所有java系統(tǒng)屬性都可以用Maven屬性引用,如${user.home}指向了用戶目錄。環(huán)境變量屬性
所有環(huán)境變量屬性都可以使用以env. 開頭的Maven屬性引用,如${env.JAVA_HOME}指代了JAVA_HOME環(huán)境變量的的值。