Java 有没有办法在Maven构建环境中使用GradleAPI?
我正在构建一个maven项目,它从其他gradle项目中检索依赖项列表。(使用java,而不是mvn控制台) 我想使用GradleAPI中的getDependencies()函数,如下所示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
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存储库?