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

相关文章

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

使用Dify访问mysql数据库详细代码示例

《使用Dify访问mysql数据库详细代码示例》:本文主要介绍使用Dify访问mysql数据库的相关资料,并详细讲解了如何在本地搭建数据库访问服务,使用ngrok暴露到公网,并创建知识库、数据库访... 1、在本地搭建数据库访问的服务,并使用ngrok暴露到公网。#sql_tools.pyfrom

Javascript访问Promise对象返回值的操作方法

《Javascript访问Promise对象返回值的操作方法》这篇文章介绍了如何在JavaScript中使用Promise对象来处理异步操作,通过使用fetch()方法和Promise对象,我们可以从... 目录在Javascript中,什么是Promise1- then() 链式操作2- 在之后的代码中使

HTML5 data-*自定义数据属性的示例代码

《HTML5data-*自定义数据属性的示例代码》HTML5的自定义数据属性(data-*)提供了一种标准化的方法在HTML元素上存储额外信息,可以通过JavaScript访问、修改和在CSS中使用... 目录引言基本概念使用自定义数据属性1. 在 html 中定义2. 通过 JavaScript 访问3.

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

HTML5中下拉框<select>标签的属性和样式详解

《HTML5中下拉框<select>标签的属性和样式详解》在HTML5中,下拉框(select标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中选择值的方式,本文将深入探讨select标签的... 在html5中,下拉框(<select>标签)作为表单的重要组成部分,为用户提供了一个从预定义选项中

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper