• Gradle连载4依赖包打包方式 心悦君兮君不知


    一、apply方法的使用

    apply plugin:'java'
    // 上面是一个短名,下面也有一个完整的名字
    apply plugin:org.gradle.api.plugins.JavaPlugin
    // 由于org.gradle.api.plugins是默认导入的,所以可以简写为
    apply plugin:JavaPlugin

    apply from:'version.gradle'
    task ex52PrintlnTask {
        println "App版本是:${versionName}, 版本号是:${versionCode}"
    }
    apply {
        plugin 'java'
        // 该闭包被用来配置一个ObjectConfigurationAction对象,所以你可以在闭包中使用ObjectConfigurationAction
        // 对象的方法、属性等进行配置,
    }
    // Action的方式:
    apply(new Action<ObjectConfigurationAction>() {
        @Override
        void execute(ObjectConfigurationAction objectConfigurationAction) {
            objectConfigurationAction.plugin('java')
        }
    })
    • 最后一种方式就是自定义一个action,然后在其execute方法中书写业务逻辑

    二、使用第三发插件进行配置

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:1.5.0'
            // 这里面就是自定义的第三方插件,在构建项目之前,为项目进行前期相关准备和初始化配置的地方
        }
    }
    apply plugin: 'com.android.application'

    三、plugins DSL方式

    plugins {
        id 'java'
    }
    // plugins DSL是一种新的插件应用方式
    • 使用这种方式和上面还是有一定差异,如果插件已经托管在了https://plugins.gradle.org/上,就可以不用在buildscript中配置classpath的依赖了,直接使用即可
    plugins {
     id "org.sonarqube" version "1.2"
    }

    四、自定义插件

    apply plugin: zidingyiPlugin
    class zidingyiPlugin implements Plugin<Project> {
        void apply(Project project) {
            project.task('zidingyiPlugin') {
                println "自定义插件"
            }
        }
    }
    4.1
    4.1
    • 下面新建一个Groovy工程,自定义个jar包
    package com.example.myapplication;

    import org.gradle.rujews.plugin;
    import org.


    public class CustomPlugin implements Plugin<Project>{
        @Override
        void apply(Project target) {
            target.task("CustomTask") {
                println "自定义插件"
            }
        }
    }
    • 插件开发所需要的依赖
    apply plugin: 'groovy'

    dependencies {
        compile gradleApi()
        compile localGroovy()
    }
    • 在src/main/resources/META-INF/gradle-plugins目录下新建一个plugin id的properties文件内容为implementation-class=com.example.myapplication.CustomPlugin
    • 然后再build.gradle中使用
    buildscript {
        dependencies {
            classpath file('lib/CustomPlugin')
        }
    }

    五、Java插件约定的项目结构

    • java工程的默认存放目录: 4.2
    apply plugin:'java'

    sourceSets {
        custom {

        }
    }
    // 添加一个custom的源代码集合,然后我们在src下新custom/java,custom/resources目录就可可以
    // 存放源代码和资源文件,他们默认的目录结构就是src/sourceSet/java  src/sourceSet/resources

    sourceSets {
        main {
            java {
                srcDir 'src/java'
            }
            resources {
                srcDir 'src/resources'
            }
        }
    }

    六、配置第三方依赖

    repositories {
        mavenCentral() // 配置了一个Maven中心库
        maven {
            url 'http://www.mavenurl.com'
        }
    }

    dependencies {
        compile group: 'com.squareup.okhttp3'name: 'okhttp'version: '3.0.1'
        // 或者简写为complile 'com.squareup.okhttp3:okhttp:3.0.1'
    }
    • 配置中心仓的方式,上面是配置了下载地点,下面是配置了要依赖什么组件
    // 下面是依赖一个project
    dependencies {
        compile project(':exampleCustom')
    }
    • 依赖一个project,那么我们的工程中可以随便用这个依赖的工程中的类,就像都在一个工程里面一样。
    • 下面各关键字的解释 4.3
    • 除此之外,gradle还可以给不同的源码指定不同的依赖
    dependencies {
        mainCompile 'com.squareup.okhttp3:okhttp:3.0.1'
        vipCompile 'com.squareup.okhttp:okhttp:2.5.0'
    }
    4.4
    4.4

    文件依赖

    • 我们把自有的一个jar放到本地,进行锁定依赖
    dependencies {
        complie file('libs/jdis.jar''libs/nngi.jar')
    }

    dependencies {
     // 使用文件树的形式,可以把整个目录已经正则表达式引入
        compile fileTree(dir:'libs'includes:'*.jar')
    }

    七、构建一个Java项目

    • build任务,比如clean,可以清除以前编译生成的文件,如果编译有问题,可以先执行clean,清理
    • assemble任务,该任务不会执行单元测试,只会编译和打包,这个任务在Android里也有,执行它可以打apk包。
    • check任务,只会执行单元测试,不会打jar包
    • javadoc任务,生成我们需要的doc api文档

    八、源码

    • gitee路径:https://gitee.com/dongqianrui/AndroidStudioProject/tree/master/Test1
    • CSDN:https://blog.csdn.net/weixin_44630050
    • 博客园:https://www.cnblogs.com/ruigege0000/
    • 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流 微信公众号二维码
  • 相关阅读:
    0705. Design HashSet (E)
    VMware简单使用
    Git笔记
    初识MyBatis
    数据库连接池配置 testOnBorrow
    Redis list操作命令
    文件/目录对比:diff命令
    可用于区块链的共识算法
    分布式一致性算法,你确定不了解一下?
    Jmeter文件下载测试
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/16205331.html
Copyright © 2020-2023  润新知