我有以下结构
root
|- foo
| |- implementation
| | \- build.gradle
| \- interface
| \- build.gradle
|
|- bar
| |- implementation
| | \- build.gradle
| \- interface
| \- build.gradle
|
|- build.gradle
\- settings.gradle
在settings.gradle中我有以下内容:
include ':foo:implementation', ':foo:interface'
include ':bar:implementation', ':bar:interface'
在我的build.gradle根文件夹中,我将所有这些作为依赖项
dependencies {
compile project(':foo:implementation')
compile project(':foo:interface')
compile project(':bar:implementation')
compile project(':bar:interface')
}
Eclipse需要每个项目都有不同的名称。默认情况下,Gradle使用项目名称在eclipse中命名。因此,eclipse无法区分' foo:implementation'和':bar:实施:'因为它们都将被命名为“实施”。在Eclipse里面。在我看来,这应该可以通过将eclipse项目名称设置为更具体的内容来解决,例如:
allprojects {
eclipse.project {
if (project == rootProject) {
name = rootProject.name
} else {
name = rootProject.name + project.path.replace(":", "-")
}
}
}
有了这个,我得到了独特的项目名称,但是当我查看.classpath xml时,只有一个实现项目和一个接口项目存在。
有什么想法吗?
答案 0 :(得分:1)
到目前为止,我一直只使用"单一目录级别"多项目;对于这种情况,有几种方法可以解决它:
答案 1 :(得分:0)
可悲的是,这是Gradle的错误;看到打开的GitHub issue。
答案 2 :(得分:0)
一种解决方法是为子项目使用不同的组:
// root/foo/build.gradle
subprojects {
group = 'org.example.foo'
}
// root/bar/build.gradle
subprojects {
group = 'org.example.bar'
}