我在以我想要的方式配置Eclipse的Buildship时遇到了一些麻烦。我目前在Eclipse中总是打开> 50个项目,但我想在Eclipse中只拥有我正在积极工作的项目,而其他项目将使用Maven存储库来解决它们的依赖关系。
假设ProjectA(包含一个main)依赖于ProjectB(一个库项目)。如果在Eclipse中打开ProjectB,我希望ProjectA直接使用ProjectB。在运行ProjectA时,ProjectB中代码的变化是显而易见的。但是,如果关闭ProjectB,我希望ProjectA使用位于构建中提到的Maven存储库中的ProjectB的JAR。gradle文件。
我所说的行为在这里有详细说明。
是否有一种方法可以使用Buildship?或者我应该使用另一个Gradle Eclipse插件吗?
-
在Gradle 3.1中添加了一个新的复合构建支持特性。
-
你可以使用依赖替换规则来替换本地项目依赖。
-
如果每个项目都在它自己独立的git/subversion存储库中,你可以使用prezi骄傲来管理项目的骄傲。你可以导入(动态生成的)多模块构建到buildship。
-
如果你想使用eclipse插件而不是构建,你可以使用whenMerged或withXml钩子来调整生成的
.classpath
文件,以指向工作区中的项目(注意eclipse现在将以不同于gradle命令行的方式构建)。
为了完成,我最终采用了Lance Java建议的依赖项替换。这种方法有以下优点:
- 不需要第三方软件
- 是IDE独立的。我们没有直接修改
.classpath
文件,我们让Eclipse插件(或任何其他IDE插件)处理这个。 - 其他插件可以访问我们想要使用的实际依赖项。
然而,这种方法有一些陷阱:
- 不能在任务中进行依赖项替换。它需要在
build.gradle
文件或在build.gradle
文件调用的方法中完成。 - 你需要刷新工作区。