如何从Java中获取依赖项

如何从Java中获取依赖项,java,gradle,gradle-plugin,Java,Gradle,Gradle Plugin,如何使用Java获取当前项目的依赖关系? 我在Java类中尝试此代码,但结果为空: class Example implements Plugin<Project> { void apply(Project project) { project.getConfigurations().getByName("runtime").getAllDependencies(); } } 当运行gradle build时

如何使用Java获取当前项目的依赖关系? 我在Java类中尝试此代码,但结果为空:

class Example implements Plugin<Project> {
    void apply(Project project) {
             project.getConfigurations().getByName("runtime").getAllDependencies();        
        }
    }

当运行gradle build时,您只是缺少了一个迭代找到的依赖项的步骤

Groovy:

class Example implements Plugin<Project> {
    void apply(Project project) {
        def configuration = project.configurations.getByName('compile')
        configuration.each { File file ->
            println "Found project dependency @ $file.absolutePath"
        }     
    }
}
类示例实现插件{
无效申请(项目){
def configuration=project.configurations.getByName('compile')
configuration.each{File->
println“找到项目依赖项@$file.absolutePath”
}     
}
}
Java 8:

import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;

public class Example implements Plugin<Project> {
    @Override
    public void apply(Project project) {
        Configuration configuration = project.getConfigurations().getByName("compile");
        configuration.forEach(file -> {
            project.getLogger().lifecycle("Found project dependency @ " + file.getAbsolutePath());
        });
    }
}
import org.gradle.api.Plugin;
导入org.gradle.api.Project;
导入org.gradle.api.artifacts.Configuration;
公共类示例实现插件{
@凌驾
公开作废申请(项目){
配置=project.getConfigurations().getByName(“编译”);
configuration.forEach(文件->{
project.getLogger().lifecycle(“找到项目依赖项@”+文件.getAbsolutePath());
});
}
}
Java 7:

import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;

import java.io.File;

public class Example implements Plugin<Project> {
    @Override
    public void apply(Project project) {
        Configuration configuration = project.getConfigurations().getByName("compile");
        for (File file : configuration) {
            project.getLogger().lifecycle("Found project dependency @ " + file.getAbsolutePath());
        }
    }
}
import org.gradle.api.Plugin;
导入org.gradle.api.Project;
导入org.gradle.api.artifacts.Configuration;
导入java.io.File;
公共类示例实现插件{
@凌驾
公开作废申请(项目){
配置=project.getConfigurations().getByName(“编译”);
用于(文件:配置){
project.getLogger().lifecycle(“找到项目依赖项@”+文件.getAbsolutePath());
}
}
}

我在问题正文中用示例代码编写了答案。)@dmitryZaskovich您无需在问题中添加答案代码。相反,只需选择正确的答案。当我在java上使用代码示例时,代码示例出现错误(我的java实现是错误的?如果我使用groovy,我认为您的代码正常工作。但是如何在java上编写它?@dmitryZaskovich我添加了相同逻辑的java 7和java 8示例,我将
应用插件:示例
放在
依赖项{…}之后
block成功了
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;

public class Example implements Plugin<Project> {
    @Override
    public void apply(Project project) {
        Configuration configuration = project.getConfigurations().getByName("compile");
        configuration.forEach(file -> {
            project.getLogger().lifecycle("Found project dependency @ " + file.getAbsolutePath());
        });
    }
}
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;

import java.io.File;

public class Example implements Plugin<Project> {
    @Override
    public void apply(Project project) {
        Configuration configuration = project.getConfigurations().getByName("compile");
        for (File file : configuration) {
            project.getLogger().lifecycle("Found project dependency @ " + file.getAbsolutePath());
        }
    }
}