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.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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言的递归算法流程图,递归算法C语言全解.ppt

递归算法C语言全解第四章 递归算法 【例5】集合的划分 【问题描述】 设S是一个具有n个元素的集合&#xff0c;S&#xff1d;&#xff5b;a1&#xff0c;a2&#xff0c;……&#xff0c;an&#xff5d;&#xff0c;现将S划分成k个满足下列条件的子集合S1&#xff0c;S2&#xff…

Media Player控件常用的样式

1。最常用的&#xff0c;默认的 <object classidCLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95 classOBJECT idMediaPlayer width400 height300 ><param nameFilename value"http://www.hubro.net/upload/media/blue-you-make-me-wanna.mp3"></object…

java学习点

第一节&#xff1a;Spring Framework核心技术底层原理详解 1、SpringIOC之Bean生命周期重点步骤详解 2、SpringIOC之依赖自动注入六层筛选源码剖析 3、SpringAOP之核心底层原理深入剖析 4、SpringAOP之事务核心底层原理深度剖析 5、Spring容器之BeanFactory架构设计剖析 …

JQuery系列(4) - AJAX方法

jQuery对象上面还定义了Ajax方法&#xff08;$.ajax()&#xff09;&#xff0c;用来处理Ajax操作。调用该方法后&#xff0c;浏览器就会向服务器发出一个HTTP请求。 $.ajax方法 $.ajax()的用法主要有两种。 $.ajax(url[, options]) $.ajax([options]) 上面代码中的url&#xff…

android自定义渐变色,Android设置背景渐变色

效果如图&#xff0c;本章只谈背景渐变色&#xff0c;仪表盘下一篇文章实现步骤&#xff0c;只需两步&#xff1a;1.在res/drawable中新建一个gradual_color_bg.xml内容如下&#xff1a;android:startColor"#aa000000" 渐变起始色值android:centerColor""…

dos批处理命令详解

一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能&#xff0c;或显示消息。如果没有任何参数&#xff0c;echo 命令将显示当前回显设置。 语法 echo [{on│off}] [message] Sample&#xff1a; echo off / echo hello world 在实际应用中我们会把…

mac安装npm

brew install node npm install 打包 启动项目 npm run dev 1、npm介绍 npm是基于nodejs的包管理器 从npm服务器下载别人编写的第三方包、模块到本地使用 从npm服务器下载安装别人编写的命令行程序到本地使用 将自己写的包、模块或者命令行程序上传到npm服务器、共别人下…

android navigation bar高度,Android获取屏幕真实高度包含NavigationBar(底部虚拟按键)

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;public int getScreentHeight() {int heightPixels;WindowManager w this.getWindowManager();Display d w.getDefaultDisplay();DisplayMetrics metrics new DisplayMetrics();d.getMetrics(metrics);// since…

tarjan求LCA模板

废话不多说&#xff0c;模板拿来。 1 # include <iostream>2 # include <cstdio>3 # include <cstring>4 # include <string>5 # include <cmath>6 # include <vector>7 # include <map>8 # include <queue>9 # include <c…

BXNA在调试显示新闻的JS?

今天发现了BXNA提供的显示BXNA新闻的JS工作不正常&#xff0c;首先是显示的内容并不是最新的东西&#xff0c;其次就是下午竟然发现JS脚本报错了&#xff0c;我想是不是我这边的问题呢&#xff1f;到了BXNA看了看范例程序竟然也报错了&#xff0c;我想只有两个可能&#xff0c;…

mac安装dubbo-admin

访问 https://github.com/apache/dubbo-admin 1&#xff1a;找到dubbo-admin git下载地址 2:git下载项目 3:执行 mvn clean install 执行 zmvn clean package -Dmaven.test.skiptrue 执行 java -jar dubbo-admin-0.3.0-SNAPSHOT.jar mac电脑安装npm 执行 brew install …

android mmi自动安装,Android平台MMI自动化测试工具通信协议.pdf

File name: Android 平台MMI 自动化测试工具通信协议Version: V1.0 Date&#xff1a;2013/03/07Author: Min LiuAndroid 平台MMI 自动化测试工具通信协议1File name: Android 平台MMI 自动化测试工具通信协议Version: V1.0 Date&#xff1a;2013/03/07Author: Min Liu需通信指令…

详解JavaScript中void语句的使用

void是在JavaScript中的一个重要的关键字可被用作其单操作数之前出现一元运算符&#xff0c;其可以是任何类型。 此运算符指定不需要返回值&#xff0c;进行计算的表达式。它的语法可能是下列之一&#xff1a; <script type"text/javascript"> void func() jav…

EditPlus使用一巧

在查看菜单里语法高亮打钩就可以显示颜色&#xff0c;否则不会颜色显示。

Mac下使用终端查看某个端口号对应的进程和杀死进程

查看端口号对应的进程 打开终端&#xff0c;输入lsof -i tcp:port&#xff0c;port即为端口号&#xff0c;如8080 如回车之后结果如图&#xff1a; 使用kill -9 PID

创建基于AJAX技术的Scribble应用程序

简介ASP.NET Atlas是一套丰富的类库&#xff0c;用于ASP.NET开发AJAX风格的应用程序。本文试图解说Atlas框架的一般性特征&#xff0c;由于Atlas是一个庞大的库&#xff0c;故本文集中探讨Atlas的两个最重要的特征&#xff1a;1. 能够从客户端脚本中调用服务器端web服务2. 使得…

个人进度(04)

昨天&#xff1a; 做一些有关ListView控件的设计。 今天&#xff1a; 学习其他控件&#xff0c;学习制作menu菜单&#xff0c;继续个人店铺UI的设计。 困难&#xff1a; ListView控件仍有一些问题。 转载于:https://www.cnblogs.com/yifengyifeng/p/6850712.html

开坛第一章

开坛第一章开坛第一章转载于:https://blog.51cto.com/aaron/3424

linux crontab怎么写,linux定时任务crontab

利用linux的定时任务crontab来执行脚本&#xff0c;在centos7版本下运行1、安装crontabyum install crontab2、查看状态及关闭和启动任务查看状态&#xff1a;systemctl status crond.service停止&#xff1a;systemctl stop crond.service启动&#xff1a;systemctl start cro…