Maven的內建屬性
Maven共有6類屬性:
①內建屬性(Maven預定義屬性,使用者可以直接使用)
${basedir}表示專案的根路徑,即包含pom.xml檔案的目錄
${version}表示專案版本
${project.basedir}同${basedir}
${project.baseUri}表示專案檔案地址
${maven.build.timestamp}表示專案構建開始時間
${maven.build.timestamp.format}表示${maven.build.timestamp}的展示格式,預設值為yyyyMMdd-HHmm
②pom屬性(使用pom屬性可以引用到pom.xml檔案中對應元素的值)
${project.build.sourceDirectory}表示主原始碼路徑,預設為src/main/java/
${project.build.testSourceDirectory}表示測試原始碼路徑,預設為src/test/java/
${project.build.directory}表示專案構建輸出目錄,預設為target/
${project.outputDirectory}表示專案測試程式碼編譯輸出目錄,預設為target/classes/
${project.groupId}表示專案的groupId
${project.artifactId}表示專案的artifactId
${project.version}表示專案的version,同${version}
${project.build.finalName}表示專案打包輸出檔案的名稱,預設為${project.artifactId}${project.version}
③自定義屬性(在pom.xml檔案的<properties>標籤下定義的Maven屬性)
定義屬性:
<project>
<properties>
<mysql.version>5.6.32</mysql.version>
</properties>
</project>
使用屬性:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
④setting.xml檔案屬性(與pom屬性同理,使用者可以用settings.開頭的屬性引用setting.xml檔案的xml元素值)
${settings.localRepository}表示本地倉庫的地址
⑤Java系統屬性(所有的Java屬性都可以使用Maven屬性引用)
mvn help:system 可以檢視所有的Java屬性
System.getProperties() 可以得到所有的Java屬性
${user.home} 表示使用者目錄
⑥環境變數屬性(所有的環境變數都可以以env.開頭的Maven屬性引用)
mvn help:system 可檢視所有的環境變數
${env.JAVA_HOME} 表示JAVA_HOME環境變數的值