在命令行使用属性时,是-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.xsettings.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&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;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)标签的使用相关推荐

  1. maven中properties标签定义变量

    一 发现问题 在pom.xml中添加依赖时语法如下 <dependency>  <groupId>org.springframework</groupId>  &l ...

  2. 10. maven属性

    1. maven属性 1.1 maven属性概述 经常在maven项目的pom文件中,看到这样的代码 <properties><spring.framework>4.0.4.R ...

  3. Maven学习笔记5:Maven属性、profile和资源过滤

    Maven的六类属性 内置属性 主要有两个常用内置属性:${basedir}项目的根目录(包含pom.xml文件的目录),${version}项目版本 POM属性 用户可以使用该属性引用POM文件中对 ...

  4. 注册为Linux服务,docker部署,dockerfile,spring boot测试监控,actuator,项目远程访问,maven的scope标签

    1. 项目注册为 Linux服务 可以开启 关闭 开机启动 mvn package java -jar xxxx.jar pom加executable <build><plugins ...

  5. Unity Shader - Shader常用属性标签(材质属性面板标签)

    记录分享一下一些Shader常用的属性标签(材质属性面板标签) 如图: 代码: Shader "lcl/ShaderPropertyDrawer/ShaderEnum" {// 材 ...

  6. 属性(Properties)和字段在C#中的关系

    --摘自Rocky Ren 属性(Properties)和字段在C#中的关系 主题:这篇文章我来说下属性(Properties)和字段在C#中的关系.首先申明一下,这里讲的属性就是通常说的包含get, ...

  7. 【Groovy】编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )

    文章目录 一.AST 语法树分析 一.AST 语法树分析 在上一篇博客 [Groovy]编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 ) ...

  8. html标签属性和标签事件,HTML参考手册( 标签、属性和事件)

    HTML标签 标签 描述 DTD 定义注释. STF 定义文档类型. STF 定义锚. STF 定义缩写. STF 定义只取首字母的缩写. STF 定义文档作者或拥有者的联系信息. STF 不赞成使用 ...

  9. XML学习(二)————属性还是标签?

    引言 xml中并没有规则要求我们什么时候使用属性,什么时候使用标签. 属性和标签都可以存储数据,但是在XML的使用中,我们需要探讨一下对属性和标签的选择问题. 约定规则 XML 应该避免使用属性来存储 ...

最新文章

  1. 从无头单链表中删除节点 结构之法 4
  2. mysql5.7.11解压版_Mysql5.7.11在windows10上的安装与配置(解压版)_MySQL
  3. 基于相似学习的目标跟踪方法
  4. python 随机获取列表的元素_练习 34 - 获取列表元素 - Learn Python 3 The Hard Way
  5. Navicat 编辑器自动完成代码功能讲解
  6. 「读懂源码系列2」我从 lodash 源码中学到的几个知识点
  7. python开源项目新手_10大Python开源项目推荐(Github平均star2135)
  8. vue实现搜索框记录搜索历史_使用JS location实现搜索框历史记录功能_苏颜_前端开发者...
  9. 【算法导论】简单哈希表的除法实现
  10. 计算机网络结构示意图,常见的五种计算机网络拓扑结构分析
  11. Python numpy.ones_like函数方法的使用
  12. java的pdf转永中_永中pdf转word下载|
  13. 2021基于vscode以及jlink调试esp32最新
  14. uni-app以h5网页的方式发布企业微信应用
  15. 用Python绘制当前日期
  16. 自兴人工智能——Python第三课(字符串和字典)
  17. 蔡高厅高等数学13-极限的四则运算公式
  18. 大数据背景下的智慧物流:物流行业解决方案
  19. 买二手房和买新房-----这几年的是没差别的
  20. 手机怎么拼图相片?方法很简单哦

热门文章

  1. js实现图片上传预览及进度条
  2. ASP.NET MVC从视图传递多个模型到Controller
  3. C#复制文件到指定文件夹
  4. powercmd注册码
  5. javascript --- 将DOM结构转换成虚拟DOM 虚拟DOM转换成真实的DOM结构
  6. HTTP协议(3)浏览器的使用之查看源码
  7. 百年难得一见!阿里园区惊现双月争辉奇观!
  8. Loadrunner多服务器连接问题
  9. No resource found that matches the given name 'android:Widget.Material.A解决方案
  10. [转]软件测试的完整分类