• Java Gradle入门指南之插件管理(类型、导入及java plugin使用)


    博客逐步迁移至 极客兔兔的小站

        上一篇随笔介绍了如何使用Gradle内建任务,介绍了自定义Gradle任务类的三种方法(build文件,buildSrc文件夹、新建groovy项目),一个任务是一个原子操作,即不可分割的。项目开发过程中,我们往往需要按照一定顺序执行多个任务以完成某个特定功能(例如build、clean),多个任务及其属性、配置的集合称之为一个plugin

        Gradle提供了2种类型的插件,脚本插件(script plugin)和二进制插件(binary plugin)。Gradle拥有十分丰富的插件,仅掌握其中几个就能够极大地提升工作效率,这篇文章将介绍Gradle的2种插件的导入方法及项目开发中极为常用的java plugin

        如有错误,请不吝指出,非常感谢;如果本文对你有帮助,右下角点个推荐吧~

    1.导入插件

    1.1 脚本插件(script plugin)

        一个脚本插件可以视作一个Gradle文件,可以在其他文件中导入,相当于多个类的模块化,下面是个非常简单的例子

    // ~/Test/helloplugin.gradle
    task helloTask << {
        println 'I Am Called !'
    }
    
    // ~/Test/build.gradle
    apply from: 'helloplugin.gradle'
    
    task mainTask << {
        println 'I am ' + name
    }
    
    执行结果如下
    C:UsersgzdDesktopTest>gradle hT mT
    :helloTask
    I Am Called !
    :mainTask
    I am mainTask
    

    1.2 二进制插件(binary plugin)

        脚本如果如果经过编译,那么就可以称之为二进制插件,例如上一篇博客新建groovy项目编译形成的 HelloTask-1.0.jar,二进制插件可以理解为提供接口的类的集合,二进制插件可复用性更强

    // 导入 java插件
    // apply plugin: '<pluginid>'
    apply plugin: 'java'
    
    // 如果已经使用import导入了相关类
    // 可使用 apply <Class> 例如 apply HelloTask
    
    • java是Gradle的核心插件,是内置的,内置插件不需要配置依赖路径
    • Gradle 内置的插件包含:

    (1) 编译、测试插件(Java、Groovy、Scala、War 等)

    (2) 代码分析插件(Checkstyle、FindBugs、Sonar 等)

    (3) IDE插件(Eclipse、IDEA等)

    • 如果引入第三方插件,那么就需要配置依赖路径了,例子可参考Gradle之定制任务最后一部分
    buildscript {
        repositories {  ...  }
        dependencies {  ...  }
    }
    

    2. Java plugin 使用方法

        Java plugin是Gradle核心API的一部分,Java plugin插件提供了一系列的任务支持构建、编译、测试Java项目。

    2.1 导入java plugin

    // ~/Test/build.gradle
    // 导入java插件
    // jcenter()是一个插件仓库,导入的插件将会在仓库中寻找并下载
    buildscript {
        repositories {  jcenter()  }
    }
    apply plugin: 'java'
    
    在Test/下(即build.gradle)所在的目录执行 gradle tasks --all
    将会列出java插件支持的所有任务
    例如我们所熟悉的 gradle build、gradle clean
    C:UsersgzdDesktopTest>gradle tasks --all
    :tasks
    ...
    Build tasks
    -----------
    build - Assembles and tests this project.
    clean - Deletes the build directory.
    
    Rules
    -----
    Pattern: clean<TaskName>
    Pattern: build<ConfigurationName>
    Pattern: upload<ConfigurationName>
    

    2.2 查看默认配置

    执行gradle dJPC,将打印java插件的默认配置
    C:UsersgzdDesktopTest>gradle dJPC
    :dislpayJavaPluginConvention
    Lib Dir: C:UsersgzdDesktopTestuildlibs
    Lib Dir Name:libs
    Sources Code Dir[source set 'main', source set 'test']
    Production Code Dir[C:UsersgzdDesktopTestsrcmainjava]
    
    • 这个任务能够让我们知道java插件的默认配置,更完整的信息可以查看Gradle官方文档
    • 例如Production Code Dir,我们只需要将代码写在 src/main/java目录下,执行gradle build,编译时Gradle将自动寻找该目录下的java代码进行编译,这和Eclipse自动生成的目录十分地相似,在这里我们只是手动做了IDE做的事情

    2.3 覆盖默认配置

    // 我们可以在build.gradle中覆盖其默认配置
    libsDir = 'buildFolder'
    libsDirName = 'libfolder'
    sourceSets {
        main {
            java {
                srcDir 'src/maincode/java'
            }
            resources {
                srcDir 'src/maincode/resources'
            }
        }
        test {
            // 省略测试配置...
        }
    }
    
    • 上述代码就将java插件默认的路径更改了,有时我们复用别人的项目时,目录结构不一致,此时通过更改java插件默认配置能够节省大量的时间。
    • 关于java plugin 更多完整的属性和用法可以查看官方文档

    3.写在最后

  • 相关阅读:
    electron 文件打包取反
    vue自定义组件实现vmodel(含vue3) 飞鸟和蝉
    CSS_flex布局解决最后一行分散问题 飞鸟和蝉
    Vue3 使用Pinia状态管理 飞鸟和蝉
    自定义inputfile样式,并实现nodejs接收并返回
    vue3 给dom添加方法
    vite+vite3动态添加组件
    flex 排版问题
    java和js 用正则表达式切割省市县的代码
    100多个常用 API 接口整理大全
  • 原文地址:https://www.cnblogs.com/gzdaijie/p/5290157.html
Copyright © 2020-2023  润新知