gpt4 book ai didi

gradle - 使用Gradle中的依赖项设置EclipseProject.referencedProjects

转载 作者:行者123 更新时间:2023-12-03 06:18:53 25 4
gpt4 key购买 nike

我正在创建Eclipse项目文件,如下所示:

eclipse {
project {
natures 'org.eclipse.jdt.core.javanature'
buildCommand 'org.eclipse.jdt.core.javabuilder'
}
classpath {
downloadSources true
downloadJavadoc true
}
}

我有一个多项目gradle构建,其中项目相互引用和第三方库。对于 projectA,其依赖项为:
dependencies {
compile project(':projectB')
compile project(':projectC')

compile "com.google.guava:guava:${VER_GUAVA}"
}

这很好用,除了生成的项目不会互相引用。它的构建很好,但是这意味着如果我重构 projectB中的某些内容,则 projectA中的引用不会随之重构。解决方法显然是设置 referencedProjects配置的 eclipse变量,但我希望根据依赖关系自动填充此变量。就像是:
eclipse {
project {
referencedProjects dependencies.grep(dep is project)
...

有人有提示吗?

最佳答案

这就是我最终解决它的方式:

// add all project dependencies as referencedProjects
tasks.cleanEclipse.doLast {
project.configurations.stream()
.flatMap({config -> config.dependencies.stream()}) // get all deps
.filter({dep -> dep instanceof ProjectDependency}) // that are Projects
.forEach({dep -> eclipse.project.referencedProjects.add(dep.name)}) // and add to referencedProjects
}
// always create "fresh" projects
tasks.eclipse.dependsOn(cleanEclipse)

可能应该提到我正在使用 wuff插件,因为我处于OSGI环境中,并且它确实对依赖项产生了欺骗。这可能是我没有自动获得此结果的原因,但是上面的代码片段很容易将其修复。

关于gradle - 使用Gradle中的依赖项设置EclipseProject.referencedProjects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27899909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com