maven内置的隐式变量分为三大类,分别可以用来访问环境变量,POM信息,和maven Settings(settings.xml的内容)
一、env
以env开头的变量,暴露的是你操作系统或者shell的环境变量。如,假如你再pom.xml中写了${env.TOMCAT_HOME},那么最终它将会被${TOMCAT_HOME}环境变量替换(linux),在Windows中为%TOMCAT_HOME%.
二、projetc
project变量暴露的是POM.xml的内容。可以使用点标记(.)的路径来引用POM元素的值,这样可以便于管理和维护。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.roadjava</groupId>
<artifactId>fraud</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>za-fraud</name>
<properties>
<spring.version>4.0.0.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${project.spring.version}</version>
</dependency>
</dependencies>
<build>
<finalName>${project.groupId}-${project.artifactId}</finalName>
</build>
</project>
总结一下project内置变量:
-
${basedir} 项目根目录
-
${project.build.directory} 构建目录,缺省为target
-
${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
-
${project.build.finalName} 最终产出物名称,缺省为${project.artifactId}-${project.version}
-
${project.packaging} 打包类型,缺省为jar
-
${project.xxx} 当前pom文件的任意节点的内容
三、settings
settings变量暴露了Maven settings.xml中的配置信息。可以使用点标记(.)的路径来引用settings.xml文件中元素的值。
最常使用的是project这一类的maven内置隐藏变量。