以编程方式解析 build.gradle

Tim*_*ing 7 java gradle

我正在创建一个自动化解决方案,它需要解析和读取 Gradle 构建,包括build.gradlesettings.gradle、 和gradle.properties以及任何子模块。我知道有一个包含Project该类的 API ,这似乎是我想要的。问题在于如何获取Project类的实例并不明显。

API 中的何处是解析构建并返回Project实例的代码?

mad*_*ead 5

您必须使用Gradle 的 Tooling API。入口点是GradleConnector类:

try(
    ProjectConnection connection = GradleConnector.newConnector()
        .forProjectDirectory(new File("/path/to/project"))
        .connect()
) {
    GradleProject project = connection.getModel(GradleProject.class);

    // Do some things with the project
    // project.getTasks().forEach(task -> { ... });
}
Run Code Online (Sandbox Code Playgroud)

  • 这很接近,但不完全是我想要的。我想检查构建,特别是但不限于依赖项。Project 类(https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html)是我希望获得的实例。GradleProject 似乎主要用于执行构建。 (2认同)