gradle的使用4

1.gradle的插件都是通过Project.apply()方法完成的,分为二进制插件和脚本插件。
①二进制插件
实现了org.gradle.api.Plugin接口的插件,它们可以有plugin id.
下面是默认导入的插件

apply plugin : 'java' 

其中的java就是plugin id,它对应的类型是org.gradle.api.plugins.JavaPlugin。所以通过类型也能用这个插件:

apply plugin:org.gradle.api.plugins.JavaPlugin

也可以写为:

apply plugin:JavaPlugin

②引用脚本插件

apply from 'version.gradle'

通过from关键字将其他的gradle的文件关联到当前gradle文件中。
其中version.gradle中

ext{
 vCode=2
 vName="1.0"
}

如果想在android studio中打印gradle内容,需要在Terminal中输入命令即可。

2.apply方法的其他用法
上面的apply plugin:'java’使用的Map类型参数的方法,也可以使用闭包的形式。

apply{
   plugin 'java'
}

3.使用第三方插件
第三方发布的jar作为二进制插件,需要在buildscript{}中配置classpath才能使用。gradle的内置插件并不需要这样。
buildscript{}是在构建项目之前,为项目进行前期准备和初始化相关配置依赖的地方,配置好之后才能应用插件。

buildscript {
   ext.kotlin_version = '1.3.0'
    repositories {
	    google()
 	   jcenter()
  }
 dependencies {
  	  classpath 'com.android.tools.build:gradle:3.3.2'
 	   classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
 }
}

4.自定义gradle插件。
①在build.gradle中创建插件并使用,必须实现Plugin接口,这里有一个apply方法,该方法就在插件应用的时候被执行。

apply plugin: 'com.android.application'
apply plugin: myGradlePlugin

android {
    ......
}

class myGradlePlugin implements  Plugin<Project>{
    @Override
   void apply(Project target) {
      target.task("myGradlePluginTask"){
 	       println "自定义插件任务"
 	   }
  }
}

②创建一个独立的插件
需要创建一个groovy工程,发布jar包,进行使用,但是没有成功。

https://blog.youkuaiyun.com/a646796992/article/details/82259502

5.依赖仓库的组成

implementation 'com.android.support:appcompat-v7:28.0.0'

是用group,name ,version中间用:组成。

6.源集的使用
是一个java源代码和资源文件的集合,通过源集可以方便的访问源代码目录,设置源集的属性,更改源集的java目录或资源目录。

sourceSets {
    main {
        manifest.srcFile 'src/main/AndroidManifest.xml'
        java.srcDirs("test")
        java {
            srcDir "src/java1"
            println "执行了"
        }
    }
    test {

    }
}

sourceSets.all{
    println name+"---"+java.srcDirs+"----"+resources+"----"+resources.srcDirs
}

源集的属性:

name   
output.classesDir   编译后的class文件目录
output.resourcesDir  编译后生成的资源目录 
compileClasspath  编译该源集的所需的classpath
java    源集的java文件
java.srcDirs   源集所在目录
resources  源集的资源文件
resources.srcDirs  源集资源文件的目录

7、默认java插件的属性

sourceSets
archivesBaseName  打包成jar或Zip文件的名字
manifest  用于访问或者配置manifest清单文件
libsDir  存放库类的目录
distsDir  存放生成的发布的文件的目录

8.多项目构建
首先在settings.gradle中添加

include ':FpcLibsProject:module_base'

然后在app中引用的时候

dependencies{
    implementation project(':FpcLibsProject:module_base')
}

但是也可以用下面的方式:

首先在settings.gradle中添加,这个是根据其依赖工程的具体目录进行配置。

include ':module_base'
project(':module_base').projectDir=new File(rootDir,"../FpcLibsProject/module_base")

然后在app中引用的时候

dependencies{
    implementation project(':module_base')
}

9.设置所有的子工程通用的配置方法

subprojects{
   apply plugin : 'java'
}

如果要包括根目录在内的所有的项目,可以使用allprojects。也就是总的工程名下也被进行配置。一般我们不需要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值