gradle 属性访问和优先级 [gradle properties access and precedence]

2023-10-15 04:50

本文主要是介绍gradle 属性访问和优先级 [gradle properties access and precedence],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Table of Contents

0. gradle环境

1.System.properties

2. gradle.properties

3. 使用案例

4 gradle 常用调试参数


0. gradle环境

 

1.System.properties

优先级从高到低;

1) -Dsystem.some.key=some.value

2) systemProp.system.some.key=some.value in gradle.properties of project root.

-D优先级高于gradle.properties里定义sytemProp的属性。

key命名规则:System.properties里定义的key的特点:key可以使用java常用命名字符([a-zA-Z0-9_])和一些特殊字符(.-)。

例如

systemProp.vaule.roleId=mySystemRoleId

-Dvault.role-id=System_D_role-id

访问规则:使用System.properties['key'], System.getProperty(key)来获取里面的值; 

task printProps {println "print out properties ..."// access system.properties['key']println System.properties['vault.role-id']println System.getProperty('vault.role-id')
}

 

2. gradle.properties

优先级从高到低;

1) -Pgradle_key=gradleVault

2)  system properties, e.g. when -Dgradle.user.home is set on the command line.

   gradle.properties in GRADLE_USER_HOME directory.

3)  gradle.properties in project root directory.

 

key命名规则:

gradle.properties里的属性key通常使用java 命名规范里的字符(a-zA-Z0-9_),这样可以使用${variable}访问;

若是含有其他字符(.-)等,则只能使用${getProperty(key)}来访问。

task printProps {println "print out properties ..."// access gradle.properties by keyNameprintln vaultRoleId
}

 

3. 使用案例

Vault roleId& secretId属性设置

需求:

访问Vault时需要设置vault.roleId & vault.secretId,

在Junit test时需要使用VM 参数 -D 来设定,

在gradle build时需要自动注入vault.roleId & vault.secretId;

 

解决:

引文key里有特殊字符'.',所以需要使用System.properties来访问。

-Dvault.roleId=roleId 加入到VM template 里可以运行JUnit。

gradle build时,可以配置vault.roleId&vault.secretId 在gradle_user_home里(若是配置在project root gradle里容易将密码提交到代码服务器,引起密码泄露)。

systemProps.vault.roleId=myRoleID

systemProps.vault.secretId=mySecretId

 

4 gradle 常用调试参数

--quiet 仅显示error信息;

--warn 显示warn级别及以上的信息;

--info   显示info级别及以上的信息;

--debug 显示debug级别及以上的信息;

 

--stacktrace 显示exception堆栈的详细信息。

最后一个调试properties错误时特别有用。

 

这篇关于gradle 属性访问和优先级 [gradle properties access and precedence]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/215428

相关文章

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

滚雪球学Java(87):Java事务处理:JDBC的ACID属性与实战技巧!真有两下子!

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE啦,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~ 🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!! 环境说明:Windows 10

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

HTML5自定义属性对象Dataset

原文转自HTML5自定义属性对象Dataset简介 一、html5 自定义属性介绍 之前翻译的“你必须知道的28个HTML5特征、窍门和技术”一文中对于HTML5中自定义合法属性data-已经做过些介绍,就是在HTML5中我们可以使用data-前缀设置我们需要的自定义属性,来进行一些数据的存放,例如我们要在一个文字按钮上存放相对应的id: <a href="javascript:" d

Python中的属性装饰器:解锁更优雅的编程之道

引言 在Python的世界里,装饰器是一个强大的工具,它允许我们以一种非侵入性的方式修改函数或方法的行为。而当我们谈论“属性装饰器”时,则是在探讨如何使用装饰器来增强类中属性的功能。这不仅让我们的代码更加简洁、易读,同时也提供了强大的功能扩展能力。本文将带你深入了解属性装饰器的核心概念,并通过一系列实例展示其在不同场景下的应用,从基础到进阶,再到实际项目的实战经验分享,帮助你解锁Python编程

Gradle的基本使用

新建一个项目后,在项目文件夹下创建build.gradle文件,并加入内容:       apply plugin: 'eclipse'。    然后在终端运行gradle eclipse即可构建eclipse IDE的开发环境。    gradle默认值:gradle有些目录是有默认值存在,建议项目的配置,承袭了maven的风格,如:         java的源码目录:src/mai

使用gradle做第一个java项目

涉及到的任务如下: assemble任务会编译程序中的源代码,并打包生成Jar文件,这个任务不执行单元测试。 Total time: 5.581 secs E:\workspace\Test>gradle assemble :compileJava :processResources UP-TO-DATE :classes :findMainClass :jar :b

Gradle的安装和配置

Gradle是一个基于JVM的构建工具,它提供了: 像Ant一样,通用灵活的构建工具可以切换的,基于约定的构建框架强大的多工程构建支持基于Apache Ivy的强大的依赖管理支持maven, Ivy仓库支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件。对Ant的任务做了很好的集成基于Groovy,build脚本使用Groovy编写有广泛的领域模型支持构建 G

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注