提问者:小点点

Gradle Buildship-在JAR和项目之间切换依赖关系


我在以我想要的方式为Eclipse配置Buildship时遇到了一些问题。我目前有

假设ProjectA(包含一个main)依赖于ProjectB(一个库项目)。如果ProjectB在Eclipse中打开,我希望ProjectA直接使用ProjectB。运行ProjectA时,ProjectB中代码的更改会很明显。但是,如果ProjectB关闭,我希望ProjectA使用位于build. gradle文件中提到的Maven存储库中的ProjectB的JAR。

这里详细介绍了我所说的行为。

有没有办法使用Buildship做到这一点?或者我应该使用另一个Gradle Eclipse插件?


共2个答案

匿名用户

>

  • Gradle 3.1中添加了一个新的复合构建支持功能。此功能改变了游戏规则,使同时处理多个项目变得简单。

    您可以使用依赖替换规则将存储库依赖与本地项目依赖交换出去。

    如果每个项目都在它自己单独的git/subversion存储库中,您可以使用prezi骄傲来管理项目的“骄傲”。您可以将(动态生成的)多模块构建导入buildship。

    如果您想使用eclipse插件而不是构建程序,您可以使用whenMerded或withXml挂钩来调整生成的. classpath文件以指向工作区中的项目(注意eclipse现在将以不同于gradle命令行的方式构建)。

  • 匿名用户

    为了完成,我最终采用了LanceJava建议的依赖替换。这种方法有以下优点:

    • 不需要第三方软件。
    • 是IDE独立的。我们没有直接修改. classpath文件,我们让Eclipse插件(或任何其他IDE插件)来处理这个问题。
    • 其他插件可以访问我们想要使用的实际依赖项。

    然而,这种方法有一些陷阱:

    • 依赖替换不能在任务中完成。它需要在build. gradle文件或从build.gradle文件调用的方法中完成。
    • 您需要刷新工作区。