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

11

我正在尝试按照自己的意愿配置Eclipse的Buildship插件,但是遇到了一些问题。目前,在Eclipse中我有50多个项目常常处于开启状态,但我想要将只有我正在积极工作的项目打开,其他项目则使用Maven存储库来解决依赖关系。

假设ProjectA(其中包含一个主要部分)依赖于ProjectB(一个库项目)。如果在Eclipse中打开了ProjectB,则希望ProjectA直接使用ProjectB。更改ProjectB中的代码时,运行ProjectA时会有所体现。然而,如果关闭ProjectB,则希望ProjectA使用位于build.gradle文件中提及的ProjectB JAR存储在Maven存储库中的版本。

我所说的行为在这里有详细说明。

是否有使用Buildship实现这一点的方法?还是应该使用另一个Gradle Eclipse插件?

2个回答

9
  1. Gradle 3.1新增了一项名为组合构建支持的功能。该功能是一个创新点,可以轻松地同时处理多个项目。

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

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

  4. 如果您想使用Eclipse插件而不是Buildship,则可以使用whenMergedwithXml挂钩来调整生成的.classpath文件以指向工作区内的项目(请注意,Eclipse现在将与Gradle命令行不同方式构建)。


2
为了完整起见,我最终选择采用Lance Java建议的依赖替换。这种方法具有以下优点:
  • 不需要第三方软件。
  • 是IDE独立的。我们没有直接处理.classpath文件,而是让Eclipse插件(或任何其他IDE插件)处理。
  • 其他插件可以访问我们想要使用的实际依赖项。
然而,这种方法也有一些注意事项:

请纠正我,但这个解决方案仅适用于Gradle项目内。如果我需要用工作区项目替换一个不属于Gradle构建的依赖项,该怎么办? - martinnemec3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接