Gradle自定义property

?Gradle自定义property

设置和读取Project的Property是使用Gradle的一个很重要的方面。比如,很多Plugin都会向Project中加入额外的Property。

在使用这些Plugin时,我们需要对这些Property进行赋值。

Gradle在默认情况下已经为Project定义了很多Property,其中比较常用的有:

project:Project本身

name:Project的名字

path:Project的绝对路径

description:Project的描述信息

buildDir:Project构建结果存放目录

version:Project的版本号

我们下面来写一个task输出这些property,如下,

task printProperties << {
    println project
    println project.name
    println name
    println project.buildDir
    println buildDir
    println project.buildFile
    println buidlFile
    println project.version
    println version
}

执行输出结果,

?  Gradle-Showcase  gradle -q printProperties
root project ‘Gradle-Showcase‘
Gradle-Showcase
/Users/xinxingegeya/workspace-gitosc/Gradle-Showcase/build
/Users/xinxingegeya/workspace-gitosc/Gradle-Showcase/build.gradle
1.0-SNAPSHOT
1.0-SNAPSHOT

Gradle还为我们提供了多种方法来自定义Project的Property。

(1)在build.gradle文件中定义Property

在build.gradle文件中向Project添加额外的Property时,我们并不能直接定义,而是应该通过ext来定义。如果要添加一个名为property1的Property,我们应该:

ext.property1 = "value1"
ext.property2 = "value2"

task printlnOwnerProperty << {
    println property1
    println property2
}

打印自己定义的property,输出,

?  Gradle-Showcase  gradle -q printlnOwnerProperty
value1
value2

另外,我们也可以通过闭包的方式:

ext {
    property1 = "value1"
    property2 = "value2"
}

task printlnOwnerProperty << {
    println property1
    println property2
}

事实上,任何实现了ExtensionAware接口的Gradle对象都可以通过这种方式来添加额外的Property,比如Task也实现了该接口。

2)通过命令行参数定义Property

Gradle还提供了-P命令行参数来设置Property,比如:

task printlnOwnerProperty << {
    println property3
}

通过命令行定义property3 这个property,如下,

?  Gradle-Showcase  gradle -Pproperty3=‘value3‘ -q printlnOwnerProperty
value3

(3)通过JVM系统参数定义Property

我们知道,在java中,我们可以通过-D参数定义JVM的系统参数,然后在代码中可以可以通过System.getProperty()进行获取。在Gradle中,我们也可以通过-D的方式向Project传入Property,只是此时我们需要遵循一些约定:每一个通过-D方式声明的Property都需要以“org.gradle.project”为前缀,对于上面的printlnOwnerProperty,我们也可以通过以下方式设置property3:

?  Gradle-Showcase  gradle -Dorg.gradle.project.property3="value3" -q printlnOwnerProperty 
value3

(4)通过环境变量设置Property

我们还可以通过设置环境变量的方式设置Project的Property。这种方式和(3)一样,需要我们遵循一些约定:在定义环境变量时,每一个Property都需要以“ORG_GRADLE_PROJECT_”为前缀:

?  Gradle-Showcase  export ORG_GRADLE_PROJECT_property3="value3"
?  Gradle-Showcase  gradle -q printlnOwnerProperty              
value3

========END========

时间: 2024-08-25 01:41:31

Gradle自定义property的相关文章

Attribute和自定义Property

property(属性) attribute(特性) property和attribute的同步 id href value class/className 旧IE的趣事 attribute作为DOM节点 总结 DOM节点可能会有attribute和property. 有时候人们会分不清,因为他们是有关联的,但它们又是完全不同的. property DOM是一个对象.因此它可以像普通对象一样存储自定义property及方法. 下例将会给 document.body 添加自定义对象 myData.

Gradle自定义插件

Gradle自定义插件 在Gradle中创建自定义插件,Gradle提供了三种方式: 在build.gradle脚本中直接使用 在buildSrc中使用 在独立Module中使用 开发Gradle插件可以在IDEA中进行开发,也可以在Android Studio中进行开发,它们唯一的不同,就是IDEA提供了Gradle开发的插件,比较方便创建文件和目录,而Android Studio中,开发者需要手动创建(但实际上,这些目录并不多,也不复杂,完全可以手动创建). 在项目中使用 在Android

gradle 自定义插件

gradle自定义规则有:目录规则树 默认是src-> mainresources就只用这样properties里面写类名:格式: implementation-class=com.allen.rujews.plugins.allen liuhailongdeMacBook-Air:allen liuhailong$ tree . ├── build.gradle └── src └── main ├── groovy │?? └── com │?? └── allen │?? └── ruje

spring 自定义 Property Editor

1:集成java.beans.PropertyEditorSupport,并实现(重写)其setAsText()方法 2:在application Context中注册刚刚自定义的类 实例: 1.先弄一个实体类,比如这个Dog: package fuckSpring.propertyEditor; public class Dog { private String name; private String type; private int age; public String getName(

android studio使用gradle自定义导出jar文件

在android studio中导出jar文件并不像在eclipse那样简单,不过也不是太复杂.需要用到gradle脚本来导出jar文件. 我们不希望导出的jar文件带有R.class和BuildConfig.class这样的类,所以我们需要编写gradle脚本来实现自定义jar文件内容. 先打开module项目下的build.gradle文件,在android{}标签下编写task命令,如下是我的gradle文件: apply plugin: 'com.android.application'

Android Gradle 自定义Task 详解

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/76408024 本文出自[赵彦军的博客] 一:Gradle 是什么 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具. 它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置.面向Java应用为主. 当前其支持的语言限于Java.Groovy.Kotlin和Scala,计划未来将支持更多的语言.基

gradle 自定义插件 下载配置文件

1.新建Gradle项目: 2.建立src/main/groovy目录,并添加如下代码: ConfigPlugin.groovy package com.wemall.config import org.gradle.api.Plugin import org.gradle.api.Project class ConfigPlugin implements Plugin<Project> { void apply(Project project) { project.extensions.cr

Gradle 自定义Task 打Jar包

可以作为Jar包内容的有两个地方: 1: build/intermediates/bundles/release/ 下的classes.jar 2: build/intermediates/classes/release/ 下 你的工程目录 方式1,采用的方式为copy,也就是网上最多.最容易搜索.最重复的方式: task makeJar(type: Copy) { delete 'build/libs/App'sName.jar' from( 'build/intermediates/bund

Android Gradle 自定义任务执行命令行

tasks.create("name": "testAssemble", "type": Exec) { workingDir "../" commandLine "./gradlew", "assembleDebug" }