java - 从 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 文件?
解决方案
- 从java调用gradle。我已经从这个答案中得到了代码How to run a gradle task from a java code?
- 使用依赖项任务。
我建议您采用这种方式,这样您就不必处理通过 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();
}
}
}
推荐阅读
- r - 无法在 R 中实现 SVM
- rcloud - 无法在 RCloud 上安装软件包
- cakephp - 在客户助手中使用 Acl 组件
- python - 从python子类中的属性中删除属性(getter/setter)
- mysql - 我的 SQL 中存在日期和日期时间比较问题
- user-interface - Pentaho Report Designer 的 UI 太小
- c# - 部署时Winform应用程序重新启动不起作用
- reactjs - 如何将 ant.design 跨度重置为默认值?
- javascript - 使用 p5.js 在 JavaScript 中未定义 JSON 属性
- java - 将 JButton 添加到 JPanel 到 JFrame