Gradle的属性设置大全

Gradle作为一款项目构建工具,由于其强大、灵活、快速、完全兼容Ant等特性,越来越受到人们欢迎。Gradle的灵活有时候也会引起人们的困惑。比如在Gradle中设置变量和属性就有N种办法。由于Gradle的理念是Convention over configruation(约定优于配置),所以如果了解了这些约定,那么在使用Gradle的属性配置时一定会如鱼得水。



在项目根目录下建立名为gradle.properties文件,在该文件中定义需要的属性。这些属性在Gradle构建Gradle领域对象(即project对象实例)时会被自动加到project对象实例中作为其属性被直接调用。

gradle.properties

1
guestName= Bowen

build.gradle

1
2
3
4
task hello << {
     println $guestName
     println "hello, $guestName"
}
1
2
3
4
5
6
$ gradle hello -q
Bowen
hello, Bowen

$ gradle properties | grep guestName
guestName: Bowen


定义在build.gradle中的ext块中。ext准确的说是Gradle领域对象的一个属性,我们可以将自定义的属性添加到ext对象上,Build.gradle中的其它代码片段可以使用。

build.gradle

1
2
3
4
5
6
7
8
ext {
     guestName='Bowen'
}

task hello << {
     println guestName
     println "hello, $guestName"
}
1
2
3
4
5
6
7
8
$ gradle hello -q
Bowen
hello, Bowen

$ gradle properties | grep guestName
guestName: Bowen
$ gradle properties | grep ext
ext: org.gradle.api.internal.plugins.DefaultExtraPropertiesExtension@10ef5fa0

从上述可以看到ext对象其实是DefaultExtraPropertiesExtension对象的一个实例。



在命令行中通过-D或者-P给Gradle实时创建属性。
-D属性会被传送给启动Gradle的jvm,作为一个系统属性被jvm使用。

build.gradle

1
2
3
task hello << {
     println System.properties['guestName']
}
1
2
$ gradle hello -DguestName='Bowen' -q
Bowen

-P属性则会被直接加载到Gradle领域对象上。

build.gradle

1
2
3
task hello << {
      println "hello, $guestName"
}
1
2
$ gradle hello -PguestName='Bowen' -q
hello, Bowen


在Gradle配置文件中创建系统属性。刚讲过在gradle.properties文件可以创建属性,同时我们也可以创建系统属性。如果有systemProp.前缀的属性会被识别为系统属性。

gradle.properties

1
systemProp.guestName = 'Bowen'

build.gradle

1
2
3
task hello << {
      println "hello, " + System.properties['guestName']
}
1
2
$ gradle hello -q
hello, Bowen


将特殊前缀的系统属性或环境变量自动加入到Gradle领域对象中。

如果有环境变量以ORG_GRADLE_PROJECT.为前缀,那么该变量会被自动添加到Gradle领域对象中。同样,如果有系统属性以org.gradle.project.为前缀,那么也会被自动加入到Gradl领域对象中。这一特性的目的之一是为了隐藏一些敏感的信息。比如在执行Gradle脚本时需要传入密码信息,如果以-P的方式传送会被别人看到。而把该属性保存为环境变量,只有系统管理员才有权访问和修改。在运行Gralde的时候该环境变量会被自动加入到Gradle对象中被使用,隔离了明暗数据,又不行影响其他用户使用。(其他用户可以通过-P方式是设置该属性)。

build.gradle

1
2
3
task hello << {
      println "hello, " + guestName
}
1
2
3
4
5
6
$ gradle hello -Dorg.gradle.project.guestName=Bowen -q
hello, Bowen

$ export ORG_GRADLE_PROJECT_guestName=Bob
$ gradle hello -q
hello, Bob
时间: 2024-09-20 17:45:55

Gradle的属性设置大全的相关文章

activity属性设置大全

activity属性设置 android:allowTaskReparenting=["true" | "false"]         是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务. android:alwaysRetainTaskState=["true" | "false"]         是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态     an

iOS UIButton各类属性设置大全

   //设置自定义的按钮    //UIButton *button1=[UIButton buttonWithType:UIButtonTypeCustom];     //设置一个圆角的按钮     UIButton *button1=[UIButton buttonWithType:UIButtonTypeRoundedRect];          button1.frame=CGRectMake(80,250,250, 30);//按钮的位置坐标     [button1 setTi

svn-SVN Externals属性设置问题

问题描述 SVN Externals属性设置问题 背景: 我是采用Apache Ant来进行自动构建的,Ant和CC的配置文件都是用svn管理起来的,然后放在 script 这个目录里面.而自动构建好的工程我都会把它们拷贝到一个名为 deploy 的目录中.这个 deploy 目录也是由svn管理起来的,但是与 script 的路径不同. 问题: 在Ant的 build.xml (放在script文件夹里)脚本文件中,我写了下面这段话: <exec executable="svn"

数据库属性设置

    在创建数据库以后还可以设置其属性,以更改创建时的某些设置和创建时无法设置的属性.用右键单击所要设置属性的数据库,从快捷菜单中选择选项"属性(Properties)",就会出现如图6-4 所示的数据库属性设置对话框.     在"General"页框中,可以看到数据库的状态.所有者.创建时间.容量.备份.维护等属性信息.     在"Data Files" 和"Transaction Log" 页框中,可以看到类似于图6

DW属性设置的总结

一次,创建了一个 由多表构成的DW(数据窗口对象) 在做到其更新的时候.发现DW_1.update()总是 = -1 .这样当然数据无法更新了! 检查数据窗口对象的update属性设置,发现里面竟然没有设置! 设置后,DW的更新便可以成功了. 最后几次试验,总结: ------------------------------ 如果你的DW的结构是从一个表上全部字段来的,UPDATE属性是自动加上的,不用设置这步: 但如果你是从多个表来的,就不会有更新属性,要靠手工调整: 如果原先不是所有字段,后

Netbackup的其它属性设置

1 Netback的其它属性设置 1.1 netbackup全局属性 全局属性指netbackup的全局参数 .进入nbu管理界面,在左边窗口点击展开NetBackup Management,然后点击展开Host Properties,选中相应的Master服务器,从菜单Actions中执行Properties来配置全局属性,如下图 Administrator e-mail address 定义NetBackup在指定条件下向指定人员发通知的email地址 Maximum Jobs per Cl

Visual C++ 2005图像编程之属性设置栏

工具箱含有选择.填充.画线等功能.使用这些工具时有的需要设置填充风格和线条的大小.为了方便用户操作,实现更简易的UI,实现了属性工具栏.属性栏需要添加的主要功能有2个显示文字的静态文本框和2个组合框. 添加属性栏控件,需要先通过资源编辑器在相应的位置上建立四个对应的工具栏按钮,对于没有接触过Visual C++ 2005的朋友可能会找不到按钮的属性编辑器.在Visual C++ 6.0中是回车(右键)弹出对话框设置的.默认情况下,在工具栏右边可以打开属性设置对话框.注意下图中红色数字的位置就是我

MS SQL基础教程:数据库属性设置

在创建数据库以后还可以设置其属性,以更改创建时的某些设置和创建时无法设置的属性.用右键单击所要设置属性的数据库,从快捷菜单中选择选项"属性(Properties)",就会出现如图6-4 所示的数据库属性设置对话框. 在"General"页框中,可以看到数据库的状态.所有者.创建时间.容量.备份.维护等属性信息. 在"Data Files" 和"Transaction Log" 页框中,可以看到类似于图6-2 和图6-3 的对话

textarea属性设置详解

 1.overflow内容溢出时的设置(设定被设定对象是否显示滚动条) overflow-x水平方向内容溢出时的设置 overflow-y垂直方向内容溢出时的设置 以上三个属性设置的值为visible(默认值).scroll.hidden.auto. 2.scrollbar-3d-light-color立体滚动条亮边的颜色(设置滚动条的颜色) scrollbar-arrow-color上下按钮上三角箭头的颜色 scrollbar-base-color滚动条的基本颜色 scrollbar-dark