gradle - 阅读gradle脚本并找到其中定义的任务

标签 gradle

我有一个要求gradle脚本(或gradle插件)必须解析gradle文件并打印所有特定类型的任务;我尝试引用gradle工具api,但未成功。

这是我尝试的:

ProjectConnection connection = GradleConnector.newConnector().forProjectDirectory(new File(System.env.REPO_ROOT)).connect()
try {
    BuildEnvironment environment = connection.model(BuildEnvironment.class).get()
    connection.model(GradleProject.class).get().getTasks().each {
        if (it instanceof EMTest) {
            println it
        }
    }
} finally {
    connection.close()
}

这会在我当前的build.gradle中打印任务列表,这是预期的,因为我没有在任何地方指定目标gradle文件。

当我尝试使用以下代码运行(而不是在其中打印/查找任务)时。有用。
ProjectConnection connection = GradleConnector.newConnector().forProjectDirectory(new File(System.env.REPO_ROOT)).connect()
try {
    BuildEnvironment environment = connection.model(BuildEnvironment.class).get()
    def build = connection.newBuild()
    /* This is where the gradle script location is provided */
    build.withArguments("--continue", "-b", System.env.REPO_ROOT + "/tests/suites/${project.lrgs}.gradle",
            "-PlrgName=${project.lrgs}", "-PlrgMetadataLoc=${lrgMetadataLoc}")
    build.forTasks(project.lrgs)
    build.setStandardOutput(System.out)
    build.run()
} finally {
    connection.close()
}

我检查了gradle工具API,但未成功。请帮忙。

最佳答案

工具API允许外部工具(例如IDE)与Gradle构建进行交互。 Gradle构建脚本或插件可以仅遍历project.tasks

关于gradle - 阅读gradle脚本并找到其中定义的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26726396/

相关文章:

Gradle list .MF

android - Android Studio 2.3.3使用gradle-3.3.3和android-plugin-2.3.3构建错误

gradle - Gradle找不到我要建立的子目录

android - 如何忽略未使用的资源而不删除它们?

gradle - 构建 doLast 未在多模块构建上执行

Gradle 找不到不存在的前缀版本传递依赖

android - 操作栏不显示菜单项

android - Gradle 构建完成,出现 520 错误,但 APK 生成成功

spring - Gradle,Spring Boot,spring-boot-starter-data-jpa升级

spring-boot - 在Spring Boot中运行Cassandra