首页 > 解决方案 > 从 Java 中读取 build.gradle 文件

问题描述

我想分析我的组织项目的 build.gradle,主要是创建一个 sonarqube 插件来报告依赖项的使用或不存在依赖项。

sonarqube 插件将用 Java 编写,输入将是 .gradle 文件。

例如:


sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
    compile "joda-time:joda-time:2.2"
    testCompile "junit:junit:4.12"
}

例如,我想在 List.class 中获取依赖项列表

有什么想法吗?,如何在 Java 中解释 .gradle 文件?

标签: javagradlesonarqubesonar-plugin

解决方案


  1. 从java调用gradle。我已经从这个答案中得到了代码How to run a gradle task from a java code?
  2. 使用依赖项任务。

我建议您采用这种方式,这样您就不必处理通过 gradle 中的任何版本文件更改来维护代码的艰巨任务。

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;

    public class Main
    {
        private static String PATH_TO_GRADLE_PROJECT = "./";
        private static String GRADLEW_EXECUTABLE = "gradlew.bat";
        private static String BALNK = " ";
        private static String GRADLE_TASK = "dependencies";

        public static void main(String[] args)
        {
            String command = PATH_TO_GRADLE_PROJECT + GRADLEW_EXECUTABLE + BALNK + GRADLE_TASK;
            try
            {
                Runtime.getRuntime().exec(command);
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }

推荐阅读