`

Maven内置隐式变量

 
阅读更多

引自:http://blog.csdn.net/xh16319/article/details/22981051

 

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元素的值

  • 大小: 51.9 KB
  • 大小: 101.3 KB
  • 大小: 65.2 KB
  • 大小: 52.2 KB
  • 大小: 93.8 KB
  • 大小: 65.3 KB
  • 大小: 74.1 KB
  • 大小: 10.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics