Maven属性(properties)标签的使用
在命令行使用属性时,是-D,比如:mvn -Dinput=test
引用官方的说明https://maven.apache.org/pom.html#Properties:
Properties
属性是了解POM基础知识的最后一个要素。Maven属性是值占位符,如Ant中的属性。它们的值可以通过使用符号${X}在POM中的任何位置访问,其中X是属性。
他们有五种不同的风格:
1、env.X:使用“env”来定义变量。将返回shell的环境变量。例如,${env.PATH}包含PATH环境变量。
注意:虽然环境变量本身在Windows上不区分大小写,但查找属性区分大小写。换句话说,虽然Windows shell为%PATH%和%Path%返回相同的值,但Maven区分${env.PATH}和${env.Path}。对于Maven 2.1.0,为了可靠性,环境变量的名称被归一化为所有大写。
2、project.x:POM中的点(.)记号路径将包含相应元素的值。例如:可以通过${project.version}访问<project><version>1.0</version></project>。
3、settings.x:settings.xml中的点(.)标注路径将包含相应的元素的值。例如:<settings><offline>false</offline></ settings>可通过${settings.offline}访问。
4、Java系统属性:可通过java.lang.System.getProperties()访问的所有属性都可用作POM属性,如${java.home}。
5、x:在POM中的<properties />元素中设置。<properties><someVar>value</someVar></properties>的值可以用作${someVar}。
而在第2点中访问pom.xml文件的属性时,其实还有一些内置的变量,如下:
${project.basedir}:这引用了module/project的根文件夹(当前pom.xml文件所在的位置),还可以简化的写法:${basedir}
以上更多用法参考:http://maven.apache.org/ref/3.5.0/maven-model-builder/#Model_Interpolation
${project.build.directory}:这表示默认的target文件夹。
${project.build.outputDirectory}:默认情况下表示target/classes文件夹。
${project.build.testOutputDirectory}:这表示默认的target/test-classes文件夹。
${project.build.sourceDirectory}:这表示默认情况下src/main/java文件夹。
${project.build.testSourceDirectory}:这表示默认情况下src/test/java文件夹。
${project.build.finalName}:默认情况下定义为${project.artifactId}-${project.version}。
${project.version}:这可以在必须编写文字版本的位置使用,否则,特别是如果您在多模块构建模块间依赖关系。
以上更多用法参考:http://maven.apache.org/pom.html#The_Super_POM
${settings.localRepository}:它引用了本地存储库的位置。这是默认的${home}/.m2/repository。
以上更多用法参考:http://maven.apache.org/pom.html#Properties
以上参考:https://cwiki.apache.org/confluence/display/MAVEN/Maven+Properties+Guide
而针对第5点时应该是项目上最多使用的,比如以下为项目实践的简单pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.jsoft.test</groupId><artifactId>test-maven</artifactId><version>1.0-SNAPSHOT</version><profiles></profiles><properties><test.uuid>123</test.uuid><jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName><jdbc.url>jdbc:mysql://localhost/stock?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8&autoReconnect=true</jdbc.url><jdbc.username>root</jdbc.username><jdbc.password>123456</jdbc.password><jdbc.validationQuery>SELECT 1 + 1</jdbc.validationQuery></properties><build><resources><resource><filtering>true</filtering><directory>${project.basedir}/src/main/resources/${test.uuid}</directory><includes><include>*.properties</include></includes></resource></resources></build> </project>
可以看出只要在properties节点配置了自定义属性即可在任意地方使用,形式如${x}。
当然除了在pom.xml使用自定义属性外,还可以在properties文件中使用,比如项目文件src/main/resources/jdbc.properties的文件,写入如下所示:
jdbc.driverClassName=${jdbc.driverClassName} jdbc.url=${jdbc.url} jdbc.username=${jdbc.username} jdbc.password=${jdbc.password} jdbc.validationQuery=${jdbc.validationQuery}
转载于:https://www.cnblogs.com/EasonJim/p/6815365.html
Maven属性(properties)标签的使用相关推荐
- maven中properties标签定义变量
一 发现问题 在pom.xml中添加依赖时语法如下 <dependency> <groupId>org.springframework</groupId> &l ...
- 10. maven属性
1. maven属性 1.1 maven属性概述 经常在maven项目的pom文件中,看到这样的代码 <properties><spring.framework>4.0.4.R ...
- Maven学习笔记5:Maven属性、profile和资源过滤
Maven的六类属性 内置属性 主要有两个常用内置属性:${basedir}项目的根目录(包含pom.xml文件的目录),${version}项目版本 POM属性 用户可以使用该属性引用POM文件中对 ...
- 注册为Linux服务,docker部署,dockerfile,spring boot测试监控,actuator,项目远程访问,maven的scope标签
1. 项目注册为 Linux服务 可以开启 关闭 开机启动 mvn package java -jar xxxx.jar pom加executable <build><plugins ...
- Unity Shader - Shader常用属性标签(材质属性面板标签)
记录分享一下一些Shader常用的属性标签(材质属性面板标签) 如图: 代码: Shader "lcl/ShaderPropertyDrawer/ShaderEnum" {// 材 ...
- 属性(Properties)和字段在C#中的关系
--摘自Rocky Ren 属性(Properties)和字段在C#中的关系 主题:这篇文章我来说下属性(Properties)和字段在C#中的关系.首先申明一下,这里讲的属性就是通常说的包含get, ...
- 【Groovy】编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )
文章目录 一.AST 语法树分析 一.AST 语法树分析 在上一篇博客 [Groovy]编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 ) ...
- html标签属性和标签事件,HTML参考手册( 标签、属性和事件)
HTML标签 标签 描述 DTD 定义注释. STF 定义文档类型. STF 定义锚. STF 定义缩写. STF 定义只取首字母的缩写. STF 定义文档作者或拥有者的联系信息. STF 不赞成使用 ...
- XML学习(二)————属性还是标签?
引言 xml中并没有规则要求我们什么时候使用属性,什么时候使用标签. 属性和标签都可以存储数据,但是在XML的使用中,我们需要探讨一下对属性和标签的选择问题. 约定规则 XML 应该避免使用属性来存储 ...
最新文章
- 从无头单链表中删除节点 结构之法 4
- mysql5.7.11解压版_Mysql5.7.11在windows10上的安装与配置(解压版)_MySQL
- 基于相似学习的目标跟踪方法
- python 随机获取列表的元素_练习 34 - 获取列表元素 - Learn Python 3 The Hard Way
- Navicat 编辑器自动完成代码功能讲解
- 「读懂源码系列2」我从 lodash 源码中学到的几个知识点
- python开源项目新手_10大Python开源项目推荐(Github平均star2135)
- vue实现搜索框记录搜索历史_使用JS location实现搜索框历史记录功能_苏颜_前端开发者...
- 【算法导论】简单哈希表的除法实现
- 计算机网络结构示意图,常见的五种计算机网络拓扑结构分析
- Python numpy.ones_like函数方法的使用
- java的pdf转永中_永中pdf转word下载|
- 2021基于vscode以及jlink调试esp32最新
- uni-app以h5网页的方式发布企业微信应用
- 用Python绘制当前日期
- 自兴人工智能——Python第三课(字符串和字典)
- 蔡高厅高等数学13-极限的四则运算公式
- 大数据背景下的智慧物流:物流行业解决方案
- 买二手房和买新房-----这几年的是没差别的
- 手机怎么拼图相片?方法很简单哦
热门文章
- js实现图片上传预览及进度条
- ASP.NET MVC从视图传递多个模型到Controller
- C#复制文件到指定文件夹
- powercmd注册码
- javascript --- 将DOM结构转换成虚拟DOM 虚拟DOM转换成真实的DOM结构
- HTTP协议(3)浏览器的使用之查看源码
- 百年难得一见!阿里园区惊现双月争辉奇观!
- Loadrunner多服务器连接问题
- No resource found that matches the given name 'android:Widget.Material.A解决方案
- [转]软件测试的完整分类