有时候在看一些开源框架的配置文件(如swagger2)时,有些莫名其妙的属性不知道说的哪个文件夹,特查询资料做个总结,方便以后自己查阅。
Maven属性
内置属性(maven预定义,用户可以直接使用的)
主要有两个常用内置属性:
${basedir}表示项目根目录,即包含pom.xml文件的目录
${version}表示项目版本
${project.basedir}同${basedir};
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.testOutputDirectory}:项目测试代码编译输出目录,默认为target/testclasses/.
${project.groupId}:项目的groupId.
${project.artifactId}:项目的artifactId.
${project.version}:项目的version,等价于${version}
${project.build.finalName}:项目打包输出文件的名称,默认为${project.artifactId}${project.version}.
自定义属性
(在pom.xml文件的<properties>标签下定义的maven属性)
<project>
<properties>
<my.pro>proname</my.pro>
</properties>
</project>
在其他地方用${my.pro}使用该自定义的属性,相当于${my.pro}是一个变量,而proname是变量指向的那个值。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${my.pro}</version>
</dependency>
setting.xml文件属性
(与pom属性同理,用户可以用以settings.开头的属性引用setting.xml文件的XML元素值)
${settings.localRepository}表示本地仓库的地址
java系统属性
(所有的java系统属性都可以用env,开头的maven属性引用)
使用mvn help:system命令可查看所有环境变量;
${env.JAVA_HOME}表示JAVA_HOME环境变量的值;