Java / Gradle:如何从Java代码访问gradle项目属性

我有一个
Java代码,可以在build目录下生成一些文件.但我希望它尊重Gradle的buildDir参数.

当我使用-PbuildDir从gradle.properties文件或命令行设置Gradle的buildDir参数时,我需要根据参数更新以下Java中的“build”字符串.

 private List<String> getX() {
    List<String> AList = new ArrayList<>();
    AList.add("build/dir1/");
    AList.add("build/dir2/");
    return AList;
}

这怎么可能?

—–更新—–

上面的代码是库的一部分.稍后,gradle项目将使用此库.我想将gradle参数传递给库.

最佳答案 这个java代码是gradle任务吗?如果是,那就是

private List<String> getX() {
    String buildDir = getProject().getBuildDir().getAbsolutePath();
    return Arrays.asList(
        buildDir + "/dir1", 
        buildDir + "/dir2"
    );
}

但如果你想“Gradle方式”,你可能会这样做:

public FileCollection getX() {
    String buildDir = getProject().getBuildDir().getAbsolutePath();
    return getProject().files(
        buildDir + "/dir1", 
        buildDir + "/dir2"
    );
}
点赞