配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html...中 , tasks 容器是所有 Gradle 任务的集合 , 其类型是 TaskContainer , 调用 Project#getTasks 函数 , 可以获取该任务集合 ; public interface...tasks 中获取任务 , 代码如下 : tasks.getByName("TaskName") 注意 : 上述操作必须在 gradle 分析完成之后才能执行 , 否则不会生成系统自带的一系列 Gradle...如果静态搜索 , 是无法搜索到这些任务的 ; 二、压缩 packageDebug 任务输出文件 ---- org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档...; 这里将 packageDebug 任务的输出 , 作为 Zip 类型任务的输入 , 那么 Zip 类型任务 依赖于 packageDebug 任务 ; 首先要查找 packageDebug 任务
---- org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org...中直接使用 Groovy 代码即可实现 对 Project 类的扩展 ; 在 Groovy 中定义普通属性代码如下 : 普通属性是局部变量 , 只能在本构建脚本中使用 ; // 定义普通属性 def...在 Groovy 中定义扩展属性代码如下 : 扩展属性是全局变量 , 对所有子项目可见 ; // 定义扩展属性 , 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1...// 定义扩展属性 , 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1!' hello2 = 'Hello World2!'...// 定义扩展属性 , 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1!' hello2 = 'Hello World2!'
配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html...中自定义 Gradle 任务调用的是 org.gradle.api.Project 中的 task 方法 , 在 build.gradle 构建脚本中的如下代码 : task Hello {...创建具有给定名称的Task并将其添加到此项目。 在返回任务之前,将执行给定的闭包来配置任务。...See here for more details 将任务添加到项目中后,它将作为项目的属性可用, 以便可以在构建文件中按名称引用任务。...Task 接口类型 , 该接口类的文档如下 : org.gradle.api.Task 配置 ( Gradle 任务类型 ) 文档 : https://docs.gradle.org/current
文章目录 一、Android Gradle 插件扩展的扩展 二、为自定义 Gradle 插件的扩展配置扩展 并 获取扩展属性 Android Plugin DSL Reference 参考文档 : Android...Extension 扩展 中 , 再 定义一层 Extension 扩展 ; 二、为自定义 Gradle 插件的扩展配置扩展 并 获取扩展属性 ---- 定义扩展类 : class MyPluginExtensions...} 声明扩展 和 扩展的扩展 : 通过调用 project.扩展名.扩展属性 可获取在构建脚本中配置的 扩展属性 , 通过调用 project.扩展名.扩展的扩展名.扩展属性 可获取在构建脚本中配置的...扩展属性 的 扩展属性 ; import org.gradle.api.Plugin import org.gradle.api.Project class MyPlugin implements...自定义 Gradle 插件的扩展属性 , 必须在 Gradle 分析完成之后才能进行 , 否则获取不到 project.afterEvaluate { println
issue:微信登录失败 问题是这样的,项目里的社交化分享是基于 UMShare 封装成的一个 ShareLib module,为了让这个 module 对调用者说更透明,我将 WXEntryActivity...目前发现的问题 用户点击微信登录总是失败,无法正常跳转到微信授权页面 用户无法使用微信分享 以上两种情况都会抛出 NameNotFoundException 冷静分析 友盟的文档 配置Android Mainifest...但说如果把这些东西放到 module项目里会如何,友盟并没有说,emmmm… 遇事不觉 Debug 进入 UMShare SDK 的源码里探索了一番后,将错误锁定在了 checkWxBySelf 这个静态方法上...,和 packageName 都有关系,也就是说我们能否正确获取 packageName 直接影响到能否正常使用 UMShare SDK 的功能!...因为我们的项目有多个 module,每个 module 都有自己的 AndroidMainifest,而最终,这些文件会被合并为一个文件。
文章目录 一、定义在根目录 build.gradle 中的扩展属性 二、扩展属性示例 Android Plugin DSL Reference 参考文档 : Android Studio 构建配置官方文档...---- org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org...都可以获取到该扩展属性值 ; 在 Module 下的 build.gradle 中可以使用 rootProject.扩展属性名 来访问定义在根目录中 build.gradle 中定义的扩展属性值 ;...二、扩展属性示例 ---- 在根目录下的 build.gradle 中定义扩展属性 : // 定义扩展属性 , 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1..., 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1!'
配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html...API ; // 获取 自定义 Gradle 插件的扩展属性 , 必须在 Gradle 分析完成之后才能进行 , 否则获取不到 project.afterEvaluate...{ // 获取 Android Gradle 的一系列配置 project.android.applicationVariants.all {..., 获取 Project 下的 android 配置块的 applicationVariants 配置内容 ; 执行结果如下 : project.android.applicationVariants...自定义 Gradle 插件的扩展属性 , 必须在 Gradle 分析完成之后才能进行 , 否则获取不到 project.afterEvaluate { println
文章目录 一、定义在根目录 build.gradle 中的扩展属性 二、扩展属性定义方式 直接在配置块闭包中定义 在配置块外使用 ext 定义扩展属性 Android Plugin DSL Reference...插件】Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 ) 中 , 直接在 build.gradle...构建脚本 中定义的 扩展属性 , 是为 org.gradle.api.Project 对象定义的扩展属性 ; 二、扩展属性定义方式 ---- 在 build.gradle 构建脚本 中 , 可以为任何对象都可以声明..., 其中的变量对所有子项目可见 ext { hello3 = 'Hello World1!...为 android 对象定义 扩展属性 , 可以在配置块外使用 android.ext.扩展属性名称 的方式定义 ; // 为 上面的 android 对象声明扩展属性 hello3 android.ext.hello3
配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html...https://developer.android.google.cn/studio/build/dependencies org.gradle.api.Task 配置 ( Gradle 任务类型...自定义 Gradle 插件的扩展属性 , 必须在 Gradle 分析完成之后才能进行 , 否则获取不到 project.afterEvaluate { println...自定义 Gradle 插件的扩展属性 , 必须在 Gradle 分析完成之后才能进行 , 否则获取不到 project.afterEvaluate { println..., 其中的变量对所有子项目可见 /*ext { hello3 = 'Hello World1!
/studio/build/dependencies Android Gradle 插件配置与 Gradle 配置关联 : 【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project...地址 // 点击 Maven 仓库的 URL 列的 copy 按钮获取 url "http://localhost:8081/repository/MyRepository...publications 脚本块中 自己指定 // 用于将 插件上传到 远程仓库 或者 本地仓库 中 apply plugin: 'maven-publish' // 自定义源码打包任务 // 自定义 Jar 类型的...main 目录下的所有文件 from sourceSets.main.allSource } // 自定义文档打包任务 // 自定义 Jar 类型的 Gradle 任务 // 将文档打包到...url 地址 // 点击 Maven 仓库的 URL 列的 copy 按钮获取 url "http://localhost:8081/repository
文章目录 一、DefaultTask 中的任务输入和输出属性 ( DefaultTask#taskInputs | DefaultTask#taskOutputs ) 二、TaskInputs 任务输入接口...函数获取文件集合中唯一的文件 四、代码示例 Android Plugin DSL Reference 参考文档 : Android Studio 构建配置官方文档 : https://developer.android.google.cn...自定义任务类父类 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/DefaultTask.html 一、DefaultTask 中的任务输入和输出属性...#first 函数 , 获取集合中的第一个元素 ; public class DefaultGroovyMethods extends DefaultGroovyMethodsSupport {...调用 FileCollection#singleFile 函数获取文件集合中唯一的文件 , 函数原型如下 : File getSingleFile() throws IllegalStateException
, 其包含了所有的 Gradle 任务 , 调用 TaskContainer 任务容器的 create 函数 , 创建一个 MyTask 任务 , 传入的第一个参数是任务名称 , 第二个参数是任务类型...使用给定的名称和类型创建Task,并将其添加到此容器中。...添加任务后,它将作为项目的属性提供,以便您可以在生成文件中按名称引用该任务。...要创建的任务类型 Returns: The newly created task object 最新创建的任务对象 Throws: InvalidUserDataException - If a task...如果此项目中已存在具有给定名称的任务。
/studio/build/dependencies Android Gradle 插件配置与 Gradle 配置关联 : 【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project...docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/Test.html LibraryExtension ( Library 依赖库的...配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html...工程分析完毕回调 } @Override void buildFinished(BuildResult buildResult) { // 构建完成时回调的函数...代码示例 : 调用 TaskExecutionGraph 任务执行图的 List getAllTasks(); 函数 , 可以获取到所有的 Gradle 任务 ; // Gradle 任务执行图监听器
/studio/build/dependencies Android Gradle 插件配置与 Gradle 配置关联 : 【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project...build.gradle#android 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.LibraryExtension.html org.gradle.api.Project...pom 配置 ---- pom 文件中 , 除了默认生成的配置外 , 还可以添加自定义 pom 节点属性 ; pom 配置文件也会随着 源码 , jar 包 , 文档 一同上传到 Maven 仓库中 ;...publications 脚本块中 自己指定 // 用于将 插件上传到 远程仓库 或者 本地仓库 中 apply plugin: 'maven-publish' // 自定义源码打包任务 // 自定义 Jar 类型的...main 目录下的所有文件 from sourceSets.main.allSource } // 自定义文档打包任务 // 自定义 Jar 类型的 Gradle 任务 // 将文档打包到
文章目录 一、扩展属性访问方式 直接访问扩展属性 通过 ext 对象访问扩展属性 注意 ext 对象的从属关系 二、在 gradle.properties 中定义扩展属性 Android Plugin...} 上述两种 扩展属性 定义方式是等价的 ; 在自定义任务中 , 访问上述 扩展属性 , 有如下方式 ; 直接访问扩展属性 可以 直接访问该扩展属性 : // 为 Project 对象定义扩展属性 ext.hello...对象的从属关系 特别注意 , 在 task 任务中 , 不能使用 ext.hello 的形式访问 扩展属性 , 否则会报错 ; 这是因为 task 任务本身也是一个对象 , 在 task 对象中调用 ext.hello...相当于调用 task 中的扩展属性 ; // 为 Project 对象定义扩展属性 ext.hello = 'Hello World!'...build.gradle 构建脚本中 , 都可以获取到该扩展属性值 ; 在 build.gradle 中的自定义任务中 , 可以直接访问定义在 gradle.properties 配置文件中的扩展属性
配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html...docs.gradle.org/current/javadoc/org/gradle/api/invocation/Gradle.html Project 中可以通过调用 Project#getGradle() 方法获取...侦听器会收到在执行生成期间发生的事件的通知。 Parameters: buildListener - 要添加的监听器....} }) 三、Gradle#addListener 函数 ---- Gradle#addListener 函数 , 用于添加 任何类型的监听器 ; void addListener(Object...它们的用法已被弃用,在未来的Gradle版本中添加这些类型的侦听器将成为一个错误: TaskExecutionListener TaskActionListener TestListener TestOutputListener
Project org.gradle.api.Project 是主要的与 Gradle 构建文件交换的接口,提供了 Gralde 所有特征的编程访问方式(例如tTask的创建以及依赖的管理)。...插件可以通过项目的Convention对象向项目添加属性和方法。此范围的属性可以是可读或可写的,这取决于约定对象。 项目的任务。可以通过使用其名称作为属性名称来访问任务。此范围的属性是只读的。...例如,调用的任务compile可作为compile 属性访问。 继承自项目父级的额外属性和惯例属性,递归到根项目。此作用域的属性为只读。...插件可以通过项目的Convention对象向项目添加属性和方法。 5. 项目的任务。为每个任务添加一个方法,使用任务的名称作为方法名称并获取单个闭包或Action参数。...父项目的方法,递归到根项目。 8. 项目的属性,其值为闭包。封闭被视为一种方法,并使用提供的参数进行调用。该物业的位置如上所述。 下面是 Project 的API: ?
配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html...Java Library 类型的依赖库 中 , 需要将其 手动引入 , 在 该 Module 模块的 build.gradle 构建脚本中引入上述依赖 ; plugins { id 'java-library...@Override void apply(Project project) { println 'Plugin4' } } 注意 : 此时的 自定义 Gradle 插件是无法在其它..., 其中的变量对所有子项目可见 ext { hello1 = 'Hello World1!'..., 其中的变量对所有子项目可见 /*ext { hello3 = 'Hello World1!
配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html..., 该属性表示了该 Gradle 任务的分组 , 通过 DefaultTask#setGroup 函数 , 可以 设置 该 Gradle 任务的分组 , 通过 DefaultTask#getGroup...函数 , 可以 获取 该 Gradle 任务的分组 ; DefaultTask#getGroup 函数原型 : public String getGroup() Description copied..., 该属性表示了该 Gradle 任务的描述 , 通过 DefaultTask#setDescription 函数 , 可以 设置 该 Gradle 任务的任务描述 ; DefaultTask#setDescription...和 description 属性 , 其中 group 属性 : 设置 自定义 Gradle 任务的分组 ; description 属性 : 设置 自定义 Gradle 任务的描述 ; 代码示例 :
下面我们介绍的是自定义的 Plugin 插件,是编译之后需要引入项目的。...在项目中引入插件 项目的根 build.gradle配置 buildscript { repositories { maven {//添加repo本地仓库...()); //配置文件的获取 String projectDri = this.project.getProjectDir().getAbsolutePath() String fileName = projectDri...如果gradle 文件中定义了,那么这个对象就会被赋与相应的属性值。...如果在获取的时候,没有被create那么就会跑出一下异常: * Where: Build file '/Users/tanzx/AndroidStudioWorkSpace/GitHub/AmsDemo