11

我在以我想要的方式为 Eclipse 配置 Buildship 时遇到了一些麻烦。我目前在 Eclipse 中始终打开 50 个以上的项目,但我想只在 Eclipse 中使用我正在积极处理的项目,而其他项目将使用 Maven 存储库来解决它们的依赖关系。

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

我正在谈论的行为在此处进行了详细说明

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

4

2 回答 2

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

  2. 您可以使用依赖项替换规则将存储库依赖项替换为本地项目依赖项。

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

  4. 如果您想使用eclipse 插件而不是 buildship,您可以使用whenMergedwithXml钩子来调整生成的.classpath文件以指向您工作区中的项目(注意 eclipse 现在将与 gradle 命令行不同地构建)。

于 2015-09-16T13:17:15.007 回答
2

为了完成,我最终按照 Lance Java 的建议进行了依赖替换。这种方法具有以下优点:

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

但是,这种方法存在一些问题:

于 2015-09-21T11:51:58.220 回答