Maven 教程(19)— Maven的六类属性,${project.basedir},${project.build.directory}:项目构件输出目录,默认为 target/
内置属性
主要有两个常用内置属性:${basedir}
项目的根目录(包含pom.xml文件的目录),${version}
项目版本
POM属性
用户可以使用该属性引用POM文件中对应元素的值,常用的POM属性包括:
${project.build.sourceDirectory}
:项目的主源码目录,默认为 src/main/java
${project.build.testSourceDirectory}
:项目的测试源码目录,默认为 src/test/java
${project.build.directory}
:项目构件输出目录,默认为 target/
${project.outputDirectory}
:项目主代码编译输出目录,默认为 target/classes/
${project.testOutputDirectory}
:项目测试代码编译输出目录,默认为 target/test-classes/
${project.groupId}
:项目的 groupId
${project.artifactId}
:项目的 artifactId
${project.version}
:项目的 version,与${version}等价
${project.build.fianlName}
:项目打包输出文件的名称。默认为${project.artifactId}-${project.version}
自定义属性
用户可以在POM的<properties>
元素下自定义Maven属性
Settings属性
用户使用settings.
开头的属性引用 settings.xml 文件中XML元素的值
Java系统属性
所有Java系统属性都可以使用Maven属性引用
环境变量属性
所有环境变量都可以使用以env.开头的Maven属性引用
在依赖中 使用pom变量
1
2
3
4
5
6
7
8
9
10
11
12
|
< dependencies > < dependency > < groupId >${project.groupId}</ groupId > < artifactId >part-a</ artifactId > < version >${project.version}</ version > </ dependency > < dependency > < groupId >${project.groupId}</ groupId > < artifactId >part-b</ artifactId > < version >${project-version}</ version > </ dependency > </ dependencies > |
在插件中使用pom变量
1
2
3
4
5
6
7
8
|
< plugin > < groupId >org.apache.maven.plugins</ groupId > < artifactId >maven-surefire-plugin</ artifactId > < version >2.5</ version > < configuration > < repositoryDirectory >${project.build.directory}/test-reports</ repositoryDirectory > </ configuration > </ plugin > |
自定义变量
1
2
3
4
5
6
7
8
9
10
11
|
< profiles > < profile > < id >dev</ id > < properties > < db.driver >com.mysql.jdbc.Driver</ db.driver > < db.url >jdbc:mysql://localhost:3360/test</ db.url > < db.username >username</ db.username > < db.password >password></ db.password > </ properties > </ profile > </ profiles > |
Maven属性默认只有在POM中才会被解析,因此需要让Maven解析资源文件中的Maven属性。Maven用maven-resources-plugin
处理资源文件。它默认的行为只是将项目主资源文件复制到主代码编译输出目录中,将测试资源文件复制到测试代码编译输出目录中。
Maven默认的主资源目录和测试资源目录的定义是在超级POM中,要为资源目录开启过滤,只要在此基础上添加一行filtering配置即可。
Filtering是maven resource插件的功能,作用是用环境变量,pom文件里定义的属性和指定文件里的属性替换属性文件的占位符。(超级pom在 apache-maven-3.3.9\lib\maven-model-builder-3.3.9.jar\org\apache\maven\model\pom-4.0.0.xml)
原文地址:https://www.cnblogs.com/bravetian/p/12497180.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释