王某某 2017年2月
通過<properties>元素用戶可以自定義一個或多個Maven屬性,然后在POM的其他地方使用${屬性名}的方式引用該屬性拂募,這種做法的最大意義在于消除重復和統(tǒng)一管理。
Maven總共有6類屬性窟她,內置屬性陈症、POM屬性、自定義屬性震糖、Settings屬性录肯、java系統(tǒng)屬性和環(huán)境變量屬性;
內置屬性
兩個常用內置屬性 ${basedir} 表示項目跟目錄吊说,即包含pom.xml文件的目錄论咏;${version} 表示項目版本POM屬性
用戶可以使用該類屬性引用POM文件中對應元素的值。如${project.artifactId}就對應了<project> <artifactId>元素的值疏叨,常用的POM屬性包括:
- ${project.build.sourceDirectory}:項目的主源碼目錄潘靖,默認為src/main/java/
- ${project.build.testSourceDirectory}:項目的測試源碼目錄穿剖,默認為src/test/java/
- ${project.build.directory} : 項目構建輸出目錄蚤蔓,默認為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)境變量的的值昏苏。