Buildship—将其他Eclipse项目作为依赖项

Buildship—将其他Eclipse项目作为依赖项,eclipse,gradle,buildship,Eclipse,Gradle,Buildship,我的工作区中有三个eclipse项目(项目A、项目B和项目C)。项目B和C依赖于项目A 在我的build.gradle文件中,我在B和C中设置了依赖项以引用A: repositories { mavenCentral() mavenLocal() } dependencies { compile('com.example:projectA:1.0') } 但是,当我右键单击并选择Gradle->Refresh Gradle Project on Project B或C

我的工作区中有三个eclipse项目(项目A、项目B和项目C)。项目B和C依赖于项目A

在我的build.gradle文件中,我在B和C中设置了依赖项以引用A:

repositories {
    mavenCentral()
    mavenLocal()
}

dependencies {
    compile('com.example:projectA:1.0')
}
但是,当我右键单击并选择Gradle->Refresh Gradle Project on Project B或C时,它表示无法解析projectA依赖关系


我正在使用Mars 4.5.2和Buildship版本1.0.20。我知道Buildship 2.0一旦发布,将提供支持,以便它可以将其他eclipse项目作为依赖项引用。但在此期间,我如何将项目A安装到回购协议中,并在项目B和C中引用它?我在Buildship Gradle任务中没有看到项目A的安装选项。

您使用GAV(组工件版本):
com添加了依赖项。示例:projectA:1.0

当您使用GAV在gradle中声明一个依赖项时,gradle假设它应该在它知道的所有可用Maven或Ivy存储库中查找该依赖项。我认为它无法解决GAV的原因是,您从未将项目发布到构建正在搜索的任何存储库中

你有两条出路:

  • 将项目A的输出(jar文件)发布到Maven repo。您需要应用。例如,您可以使用“gradle publishToMavenLocal”发布到本地回购协议

  • 将依赖项声明为项目依赖项,并保留项目。 您可以将依赖项声明为
    compileproject(':projectA')

  • 后者可能更容易处理


    顺便说一句,Buildship本身可能与这个问题没有什么关系,而是使用Gradle或Maven等依赖项跟踪构建系统的一般问题。我记得看到一些关于Gradle如何在3.0及更高版本中更好地解决此问题的参考资料,但我目前似乎找不到链接。

    如果使用Gradle命令行,上述配置是否成功构建
    /gradlew projectB:build
    否。它声明
    找不到com。示例:projectA:1.0。在以下位置搜索:
    这些位置包括本地回购。当我浏览本地repo文件系统时,我也找不到projectA的路径,因此我的问题似乎是无法在本地repo中安装projectA。但我不知道如何使用Buildship安装项目。我认为您的问题与Buildship无关。。。我会发布一个答案。你用的是什么gradle版本?谢谢。我在Gradle 3.1中使用的是2.11版,这是一个选项。Buildship 1.0.20不支持它,但2.0将支持它。在此期间,我选择使用Maven发布插件。一旦得到支撑,就可以很容易地转换为使用复合材料。我现有的repo(SVN)目录结构与Gradle标准的多项目结构一起工作。谢谢你的指针!我会考虑使用它,因为到目前为止,项目间依赖性一直是我对Gradle的主要抱怨。