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

相关文章

Springboot的配置文件及其优先级说明

《Springboot的配置文件及其优先级说明》文章介绍了SpringBoot的配置文件,包括application.properties和application.yml的使用,以及它们的优先级,还讨... 目录配置文件内置配置文件yml与properties的比较优先级比较外置配置文件springboot

Java利用Spire.XLS for Java自动化设置Excel的文档属性

《Java利用Spire.XLSforJava自动化设置Excel的文档属性》一个专业的Excel文件,其文档属性往往能大大提升文件的可管理性和可检索性,下面我们就来看看Java如何使用Spire... 目录Spire.XLS for Java 库介绍与安装Java 设置内置的 Excel 文档属性Java

nginx跨域访问配置的几种方法实现

《nginx跨域访问配置的几种方法实现》本文详细介绍了Nginx跨域配置方法,包括基本配置、只允许指定域名、携带Cookie的跨域、动态设置允许的Origin、支持不同路径的跨域控制、静态资源跨域以及... 目录一、基本跨域配置二、只允许指定域名跨域三、完整示例四、配置后重载 nginx五、注意事项六、支持

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

input的accept属性让文件上传安全高效

《input的accept属性让文件上传安全高效》文章介绍了HTML的input文件上传`accept`属性在文件上传校验中的重要性和优势,通过使用`accept`属性,可以减少前端JavaScrip... 目录前言那个悄悄毁掉你上传体验的“常见写法”改变一切的 html 小特性:accept真正的魔法:让

C#借助Spire.XLS for .NET实现在Excel中添加文档属性

《C#借助Spire.XLSfor.NET实现在Excel中添加文档属性》在日常的数据处理和项目管理中,Excel文档扮演着举足轻重的角色,本文将深入探讨如何在C#中借助强大的第三方库Spire.... 目录为什么需要程序化添加Excel文档属性使用Spire.XLS for .NET库实现文档属性管理Sp

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

win10安装及配置Gradle全过程

《win10安装及配置Gradle全过程》本文详细介绍了Gradle的下载、安装、环境变量配置以及如何修改本地仓库位置,通过这些步骤,用户可以成功安装并配置Gradle,以便进行项目构建... 目录一、Gradle下载1.1、Gradle下载地址1.2、Gradle下载步骤二、Gradle安装步骤2.1、安

linux ssh如何实现增加访问端口

《linuxssh如何实现增加访问端口》Linux中SSH默认使用22端口,为了增强安全性或满足特定需求,可以通过修改SSH配置来增加或更改SSH访问端口,具体步骤包括修改SSH配置文件、增加或修改... 目录1. 修改 SSH 配置文件2. 增加或修改端口3. 保存并退出编辑器4. 更新防火墙规则使用uf

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信