构建 - 将其他Eclipse项目作为依赖

时间:2016-09-27 15:16:36

标签: 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')
}

但是,当我右键单击并选择项目B或C上的Gradle->刷新Gradle项目时,它表示它无法解析projectA依赖项。

我正在使用Mars 4.5.2和Buildship版本1.0.20。据我所知,Buildship 2.0一旦发布将提供支持,以便它可以将其他eclipse项目称为依赖项。在过渡期间,如何将项目A安装到仓库并在项目B和C中引用它?我没有在Buildship Gradle Tasks中看到项目A的安装选项。

1 个答案:

答案 0 :(得分:1)

您已使用GAV(群组工件版本)添加了依赖关系:com.example:projectA:1.0

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

你有两种方法:

  1. 将项目A的输出(jar文件)发布到Maven仓库。您需要应用Maven publishing plugin。例如,您可以使用" gradle publishToMavenLocal"发布到您的本地仓库。

  2. 将依赖项声明为Project依赖项,并保留项目as sub-project of the same parent project。 您将依赖关系声明为compile project(':projectA')

  3. 后者可能更容易使用。

    BTW,Buildship本身可能与此问题关系不大,而是使用依赖跟踪构建系统(如Gradle或Maven)的一般问题。我记得看过一些关于Gradle如何在3.0以上更好地解决这个问题的参考,但我现在似乎无法找到这个链接。