美文网首页项目构建
Gradle 创建 buildSrc 文件夹

Gradle 创建 buildSrc 文件夹

作者: 这个世界是虚拟的 | 来源:发表于2020-08-05 14:27 被阅读0次

    0. 为什么需要buildSrc

    在Gralle管理的项目中,为了区分构建所需的类和业务类,最好分开管理这些代码,这也是Gradle所建议的:[Use buildSrc to abstract imperative logic]

    1. 具体创建过程

    1.1 创建一个空项目

    image.png

    1.2 创建buildSrc

    • 同级与build.gradle
    • 创建完成后重新构建


      image.png

    1.3 修改buildSrc下的build.gradle

    • 如果buildSrc下没有build.gradle,你可以自己新建一个
    • 使用 'groovy' 插件
      完整build.gradle脚本:
    plugins {
        id 'groovy'
        id 'java'
    }
    
    group 'com.gradle'
    version '0.0.1-SNAPSHOT'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'org.codehaus.groovy:groovy-all:2.5.8'
        testImplementation group: 'junit', name: 'junit', version: '4.12'
    }
    

    1.4 新建src/main/groovy

    事实上如果你用intellij上面的步骤完成后重新构建,你点击新建文件夹intellij会自动弹出src/main/groovy的选项你直接选定即可,创建完成后,项目会是介锅样子


    image.png

    2 测试

    • 写一个自己的Task类
    import org.gradle.api.DefaultTask
    import org.gradle.api.tasks.TaskAction
    
    class MyTask extends DefaultTask{
        MyTask() {
            this.description = "test buildSrc"
        }
    
        @TaskAction
        void start() {
            println 'bi bo bi bo... ...'
        }
    }
    
    • 再定义一个task在主工程下的build.gradle
    task doTestBuildSrc(type: MyTask) {
        doLast {
            println "I'm the task"
        }
    }
    
    • 执行
    //gradlew doTestBuildSrc --warning-mode all
    
    > Task :doTestBuildSrc
    bi bo bi bo... ...
    I'm the task
    

    3 要注意的点

    • 其实buildSrc被gradle同样视为一个module,但是你别傻傻的直接新建一个名叫buildSrc的module,因为自gradle 6 以后,buildSrc模块名已经被reserve
    • 如果你还使用 compile 或者 testCompile 最好换用 implementation 和 testImplementation 因为 gradle 7 后会弃用这两个API

    相关文章

      网友评论

        本文标题:Gradle 创建 buildSrc 文件夹

        本文链接:https://www.haomeiwen.com/subject/zqperktx.html