Buildship - Having other Eclipse projects as dependecies
我的工作区中有三个月食项目(Project A,Project B和Project C)。项目B和C取决于项目A。
在我的build.gradle文件中,我已经在B和C中设置了依赖项来引用A:
1 2 3 4 5 6 7 8 | repositories { mavenCentral() mavenLocal() } dependencies { compile('com.example:projectA:1.0') } |
但是,当我右键单击并选择Project B或C上的Gradle-> Refresh Gradle Project时,它表示无法解析projectA依赖项。
我正在使用Mars 4.5.2和Buildship版本1.0.20。我了解Buildship 2.0一旦发布将提供支持,以便它可以将其他Eclipse项目称为依赖项。在过渡期间,如何将项目A安装到存储库中,并在项目B和C中引用它?我在Buildship Gradle Tasks中看不到项目A的安装选项。
您已使用GAV(组工件版本)添加了依赖项:
当您使用GAV在gradle中声明依赖项时,gradle假定它应该在它知道的所有可用Maven或Ivy存储库中查找该依赖项。我认为它无法解决GAV的原因是,您从未将项目A发布到正在搜索内部版本的任何存储库中。
您有两种解决方法:
将项目A的输出(jar文件)发布到Maven存储库。您将需要应用Maven发布插件。例如,您可以使用" gradle publishToMavenLocal "发布到本地存储库。
将依赖项声明为项目依赖项,并将您的项目保留为同一父项目的子项目。
您将依赖项声明为
使用后者可能要容易得多。
顺便说一句,Buildship本身可能与该问题无关,而是使用诸如Gradle或Maven之类的依赖项跟踪构建系统的一个普遍问题。我记得曾经看到过一些有关Gradle如何在3.0及更高版本中更好地解决此问题的参考,但是我现在似乎找不到链接。