Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法在Maven构建环境中使用GradleAPI?_Java_Maven_Gradle - Fatal编程技术网

Java 有没有办法在Maven构建环境中使用GradleAPI?

Java 有没有办法在Maven构建环境中使用GradleAPI?,java,maven,gradle,Java,Maven,Gradle,我正在构建一个maven项目,它从其他gradle项目中检索依赖项列表。(使用java,而不是mvn控制台) 我想使用GradleAPI中的getDependencies()函数,如下所示 import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.dsl.DependencyHandler; DependencyHandler dependencies = project.getDependen

我正在构建一个maven项目,它从其他gradle项目中检索依赖项列表。(使用java,而不是mvn控制台)

我想使用GradleAPI中的getDependencies()函数,如下所示

import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.dsl.DependencyHandler;

DependencyHandler dependencies = project.getDependencies();
但看起来GradleAPI只能在Gradle构建环境中使用

我在pom.xml中添加了gradle core,如下所示,但它似乎没有检索依赖项所需的api

<dependency>
  <groupId>org.gradle</groupId>
  <artifactId>gradle-core</artifactId>
  <version>2.2.1</version>
</dependency>

org.gradle
梯度核
2.2.1
有没有一种方法可以在Maven构建环境中使用Gradle API?

从技术上讲,这是可能的,因为Gradle的核心就是Java。但是,为了正确创建实例,您需要构造Gradle项目、构造子项目、调用各种生命周期方法以及Gradle所做的许多其他事情

话虽如此,通过命令via调用Gradle以获取任务的依赖项列表要“容易”得多。比如:

ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("gradlew", "dependencies");
Process process = processBuilder.start();

try (var reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
    while ((line = reader.readLine()) != null) {
        // Do something with the output
    }
}
如果您有权访问Gradle项目,那么创建一个包含所有依赖项和任何其他需要的文件(JSON或任何格式)的文件要容易得多。通过这种方式,您可以使用上面的示例调用自定义任务,然后在Maven中以易于阅读的格式使用该文件。

从技术上讲,这是可能的,因为Gradle的核心只是Java。但是,为了正确创建实例,您需要构造Gradle项目、构造子项目、调用各种生命周期方法以及Gradle所做的许多其他事情

话虽如此,通过命令via调用Gradle以获取任务的依赖项列表要“容易”得多。比如:

ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("gradlew", "dependencies");
Process process = processBuilder.start();

try (var reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
    while ((line = reader.readLine()) != null) {
        // Do something with the output
    }
}

如果您有权访问Gradle项目,那么创建一个包含所有依赖项和任何其他需要的文件(JSON或任何格式)的文件要容易得多。通过这种方式,您可以使用上面的示例调用自定义任务,然后在Maven中以易于阅读的格式使用该文件。

您希望从何处读取依赖项?在Java程序中?Maven插件内部?@JFMeier我想读取Java程序内部的依赖项~从哪里读取gradle项目?来自git?从maven存储库?您希望从何处读取依赖项?在Java程序中?Maven插件内部?@JFMeier我想读取Java程序内部的依赖项~从哪里读取gradle项目?来自git?来自maven存储库?