gpt4 book ai didi

java - 如何在 Eclipse 工作区中解决从一个 gradle 项目到另一 gradle 项目的依赖关系?

转载 作者:行者123 更新时间:2023-12-02 04:59:20 24 4
gpt4 key购买 nike

我的 Eclipse 工作区中有两个 gradle 项目。我们称它们为“A”和“B”。其中“A”取决于“B”。项目“A”已在其 build.gradle 文件中声明了对“B”的依赖,如下所示:

 dependencies {
compile 'some-group:B:1.0.0'
...
}

由于我将在这两个项目中进行修改,如果 gradle 能够解决“B”对 eclipse 项目中的二进制文件的依赖关系(而不是从某个存储库下载 B.jar),那就太好了。

幸运的是,我发现Eclipse/STS中有这样的功能(根据this问题)。我通过检查“将 jar 重新映射到 Gradle 项目”(在 Eclipse 中:窗口 -> Gradle 首选项)来启用此功能。在执行 Gradle -> Refresh All(在项目“A”中)之后,我在项目“A”类路径中有这个:

  • C:\eclipse-workspace\B\bin(项目“B”的二进制文件所在的路径)。
  • 项目 B 的所有传递依赖项。
  • 项目“A”中声明的所有依赖项(及其传递依赖项)。

到目前为止一切顺利:)

但过了一段时间,我意识到我在类路径中得到的内容比我预期的要多一些。我还在项目“A”类路径中得到了这个:

  • “B/src/test/java”的二进制文件
  • 项目“B”的“testCompile”依赖项。

从项目“A”访问项目“B”的“测试”代码和 testCimple 依赖项是没有意义的。有什么办法可以避免这种情况吗?

我尝试在项目“B”中为 src/main/*src/test/* 设置不同的输出文件夹,但是这两个文件夹都是添加到项目“A”的类路径中。

我之前一直在 Eclipse 中使用 Maven,并且引用同一 Eclipse 工作区中的依赖关系效果非常好。

最佳答案

多项目构建就是您的答案。

最简单的方法是有一个像这样的目录结构:

root
|-> project A
\-> project B

在根目录中,您将有一个 build.gradle 文件和一个 settings.gradle 文件,在 settings.gradle 中,您列出项目 A 和项目 B。任何常见配置都可以放入根 build.gradle 中,然后放入项目 B 中您可以具有以下依赖项:

dependencies {
compile project(':project A')
}

然后,如果您更改项目 A 并构建项目 B,项目 A 将重新编译,否则 gradle 将使用之前编译的版本。

参见https://gradle.org/docs/current/userguide/multi_project_builds.html

关于java - 如何在 Eclipse 工作区中解决从一个 gradle 项目到另一 gradle 项目的依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28463505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com