maven常用配置的變數
Xml程式碼
- ${basedir} represents the directory containing pom.xml
- ${version} equivalent to ${project.version} or ${pom.version}
2)Pom/Project properties
所有pom中的元素都可以用 project. 字首進行引用,以下是部分常用的
Xml程式碼
-
${project.build.directory } results in the path to your "target" dir, this is the same as ${pom.project.build.directory }
- ${project.build. outputD irectory } results in the path to your "target/classes" dir
- ${project.name } refers to the name of the project.
- ${project.version } refers to the version of the project.
-
${project.build.finalName } refers to the final name of the file created when the built project is packaged
3)本地使用者設定
所有用的的 settings.xml 中的設定都可以通過 settings. 字首進行引用
Xml程式碼
- ${settings.localRepository } refers to the path of the user's local repository.
- ${maven.repo.local } also works for backward compatibility with maven1 ??
4)環境變數
系統的環境變數通過 env. 字首引用
Xml程式碼
-
${env.M2_HOME } returns the Maven2 installation path.
- ${java.home } specifies the path to the current JRE_HOME environment use with relative paths to get for example:
- <jvm>${java.home}../bin/java.exe</jvm>
5)java系統屬性
所有JVM中定義的java系統屬性.
6)使用者在pom中定義的自定義屬性
Xml程式碼
- <project>
- ...
- <properties>
- <my.filter.value>hello</my.filter.value>
- </properties>
- ...
- </project>
則引用 ${my.filter.value } 就會得到值 hello
7)上級工程的變數
Xml程式碼
- 上級工程的pom中的變數用字首 ${project.parent } 引用. 上級工程的版本也可以這樣引用: ${parent.version }.maven的變數
8)引用屬性Reflection Properties
The pattern ${someX.someY.someZ} can simply sometimes mean getSomeX().getSomeY().getSomeZ(). Thus, properties such as ${project.build.directory} is translated to getProject().getBuild().getDirectory().
彙總變數列表:
* project (from [1])
o project.distributionManagementArtifactRepository
o project.artifact
o project.parent
o project.file
o project.artifacts
o project.parentArtifact
o project.pluginArtifacts
o project.remoteArtifactRepositories
o project.pluginArtifactRepositories
o project.attachedArtifact
* settings (from [2])
o settings.offilne
o settings.interactive
* rootless (from [3])
o localRepository
o reactorProjects
* java properties (from [4])
o java.version
o java.vendor
o java.vendor.url
o java.home
o java.vm.specification.version
o java.vm.specification.vendor
o java.vm.specification.name
o java.vm.version
o java.vm.vendor
o java.vm.name
o java.specification.version
o java.specification.vendor
o java.specification.name
o java.class.version
o java.class.path
o java.library.path
o java.io.tmpdir
o java.compiler
o java.ext.dirs
o os.name
o os.arch
o os.version
o file.separator
o path.separator
o line.separator
o user.name
o user.home
o user.dir
Maven共有6類屬性:
內建屬性(Maven預定義,使用者可以直接使用)
${basedir}表示專案根目錄,即包含pom.xml檔案的目錄;
${version}表示專案版本;
${project.basedir}同${basedir};
${project.baseUri}表示專案檔案地址;
${maven.build.timestamp}表示專案構件開始時間;
${maven.build.timestamp.format}表示屬性${maven.build.timestamp}的展示格式,預設值為yyyyMMdd-HHmm,可自定義其格式,其型別可參考java.text.SimpleDateFormat。用法如下:
<properties> <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format> </properties> |
POM屬性(使用pom屬性可以引用到pom.xml檔案對應元素的值)
${project.build.directory}表示主原始碼路徑;
${project.build.sourceEncoding}表示主原始碼的編碼格式;
${project.build.sourceDirectory}表示主原始碼路徑;
${project.build.finalName}表示輸出檔名稱;
${project.version}表示專案版本,與${version}相同;
自定義屬性(在pom.xml檔案的<properties>標籤下定義的Maven屬性)
<project> <properties> <my.pro>abc</my.pro> </properties> </project> |
在其他地方使用${my.pro}使用該屬性值。
settings.xml檔案屬性(與pom屬性同理,使用者使用以settings.開頭的屬性引用settings.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環境變數的值;