美文网首页
Gradle非常用脚本

Gradle非常用脚本

作者: 大冷月 | 来源:发表于2021-10-02 10:26 被阅读0次
  1. 获取项目buildscript中依赖的classpath
project.rootProject.buildscript.configurations.each {
    if (it.name == ScriptHandler.CLASSPATH_CONFIGURATION) { // classpath
        it.resolvedConfiguration.firstLevelModuleDependencies.each {
            println("${it.moduleGroup}:${it.moduleName}:${it.moduleVersion}")
        }
    }
}
  1. 获取project下所有dependencies
project.configurations.each {
    Configuration conf ->
        Logger.info("当前:Configuration--->" + conf.name)
        if (conf.name.toLowerCase().contains(classpath)) {
            Map<String, List<MoonDependency>> listMap = new HashMap<>()
            // 获取所有依赖信息
            conf.incoming.resolutionResult.root.dependencies.each { dr ->
                resolveDependencies(dr, listMap)
            }
        }
}


static Map<String, List<MoonDependency>> 
resolveDependencies(DependencyResult dr, Map<String, List<MoonDependency>> listMap) {
    def depName = dr.requested.displayName
    if (dr == null || depName.contains("project")) {
        Logger.warn("使用project依赖--->" + depName)
        return
    }
    String[] depSplit = depName.split(":")
    if (depSplit.length < 3) {
        Logger.warn("本地依赖--->" + depName)
        return
    }
    MoonDependency dependency = new MoonDependency()
    dependency.groupId = depSplit[0]
    dependency.artifactId = depSplit[1]
    dependency.version = depSplit[2]
    if (depSplit[2].contains("{strictly")) {
        dependency.isReally = true
        dependency.version = depSplit[2]
                .replace("{strictly", "")
                .replace("}", "")
                .replace(" ", "")
    }

    def name = depSplit[0] + ":" + depSplit[1]
    def list = listMap.get(name)
    if (list == null) {
        list = new ArrayList<MoonDependency>()
        listMap.put(name, list)
    }
    list.add(dependency)

    return listMap
}


class MoonDependency {
    String groupId
    String artifactId
    String version
    boolean isReally
}

相关文章

  • 工具

    AndroidStudio Gradle脚本 Android Gradle 常用使用场景实现方式的总结 Git G...

  • Gradle 常用工具脚本

    基于gradle 4.6 本文记录一些常用的gradle工具脚本的写法,基于gradle4.6,不同版本的grad...

  • Gradle基础配置

    gradle基础配置 gradle构建脚本基础 gradle常用命令 //列出项目的所有属性. 这样你就可以看到插...

  • 常用gradle脚本整理

    一:发布项目 1.发布项目到本地&nexus私有仓库 2.发布到jCenter

  • Gradle非常用脚本

    获取项目buildscript中依赖的classpath 获取project下所有dependencies

  • Gradle 编写构建脚本

    前言 本篇gradle构建脚本的编写是按照android项目中build.gradle的常用的点来进行梳理的。 可...

  • Gradle学习笔记(三)-- Groovy常用类介绍

    前言 在学习Gradle时,首先要对Groovy这个脚本语言的常用的东西有个概念,以后也好阅读别人的脚本或者自己写...

  • Gradle For Android(1)--使用Android

    Gradle基础 build.gradle是为了构建Android项目的脚本。Gradle构建脚本并不是使用传统的...

  • Gradle脚本常用功能总结

    本文介绍了Gradle脚本常用功能实现,包括任务的定义、添加依赖、指定任务执行顺序、复制文件、复制并重命名文件、从...

  • 不得不学之「 Gradle」 ①入门

    1、运行 Gradle 文件 build.gradle 是 Gradle 默认的构建脚本文件,执行 Gradle ...

网友评论

      本文标题:Gradle非常用脚本

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