您的位置:首页 > 其它

Maven内置隐式变量

2015-10-29 14:16 190 查看

引自:https://www.geek-share.com/detail/2607667882.html

 

Maven提供了三个隐式的变量可以用来访问环境变量,POM信息,和Maven Settings。

 

env

 

env变量,暴露了你操作系统或者shell的环境变量。便 如在Maven POM中一个对${env.PATH}的引用将会被${PATH}环境变量替换,在Windows中为%PATH%.

通过mvn help:system可以查看所有的系统属性和环境变量。

 

project

 

project变量暴露了POM。可以使用点标记(.)的路径来引用POM元素的值。例如超级POM中的一段如下:

 

<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<scriptSourceDirectory>${project.basedir}/src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
...
</build>

 除了${project.basedir}隐式定义为项目根目录外,project可以引用pom.xml中的任意元素的值。比如

${project.build.directory}引用的是build元素下的directory子元素的内容。

 

超级POM中约定了项目的结构目录,这些变量将被所有自定义pom继承,在你的项目下使用mvn help:effective-pom,可以看到这些值都被继承了。

 

我们也可以在pom中直接引用这些值:

${project.basedir} 项目根目录

${project.build.directory} 构建目录,缺省为target

${project.build.outputDirectory} 主代码输出目录,缺省为target/classes

${project.build.sourceDirectory} 源代码目录,缺少为src/main/java

${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}

 

 

settings

 

settings变量暴露了Maven settings信息。可以使用点标记(.)的路径来引用settings.xml文件中元素的值。例如${settings.offline}会引用~/.m2/settings.xml文件中offline元素的值

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: