当前位置: 首页 > 知识库问答 >
问题:

Gradle子项目不会在依赖于其他子项目的情况下编译

芮意
2023-03-14

我有一个多项目gradle项目,结构如下。

Project A: The top level project that all sub projects reside in.
  SubProject B: 
  SubProject C:
  SubProject D:
  SubProject E:
  SubProject Shared: Every 'SubProject' has a dependency to this project "compile project(':Shared')"

从顶层“Project A”运行Gradle任务时,一切都正常工作

但是,当我尝试在子项目(如“subproject C”)上运行单个任务时,会出现以下错误。

失败:构建失败,但有一个异常

出了什么问题:

评估根项目“SubProject C”时出现问题。

在根项目“SubProject C”中找不到带有路径“: Shared”的项目。

我想我看到了问题所在,Gradle认为我的子项目是根项目?然而,我不知道如何解决这个问题。

我的顶级设置。gradle文件如下所示

rootProject.name = 'Project A'

include 'SubProject B'
include 'SubProject C'
include 'SubProject D'
include 'SubProject E'
include 'SubProject Shared'

这是我的身材。“子项目C”的渐变文件

dependencies {
    compile project(':Shared')
}

额外的问题...子项目是否需要一个以“rootProject.name”设置为子项目名称的settings.gradle文件?

共有2个答案

秦宁
2023-03-14

我认为问题在于你的设置。gradle文件。

替换您的设置。带有以下代码的gradle文件。

rootProject.name = 'Project A'

include 'SubProject B',':SubProject C',':SubProject D',':SubProject E'
include ':SubProject Shared'

尝试运行“SubProjectC”的构建脚本。希望它能工作。

然后回答你的第二个问题。

We don't need seperate settings.gradle for each subprojects.
夹谷阳夏
2023-03-14

在我的例子中,问题是我的子项目有设置。带的渐变

rootProject.name = 'MySubProject'

删除文件修复了它。(看来你根本没有文件,删除属性是不够的。)

 类似资料:
  • 我有两个Maven(GWT)项目,其中一个应该依赖于另一个。我只是添加了依赖项,比如: 这些类被正确引用,我可以在我的其他项目中使用它们。但如果我想触发maven构建,它会抱怨:“无法解析项目的依赖项:找不到工件myGroup:MyArtifact:jar:1.0-SNAPSHOT” 该项目没有jar,因为它是一个GWT Web应用程序。它有一个“战争”档案。我测试了一下论点,尝试了“pom”或“

  • 我有一个具有以下依赖结构的gradle项目: 这是由Jersey和ASM4.1之间的不兼容性引起的(Jersey使用3.3.1,它具有不同的组id),这是从另一个模块提取的传递依赖项。 顺便说一句,我知道Idea13有更好的Gradle集成,但是(a)我们有12的许可证,而且不会很快升级整个开发团队;(b)Idea13在多语Gradle项目(Java/Scala)方面仍然存在一些问题,所以它不符合

  • 问题内容: 我有一个Eclipse插件项目,它取决于我在Eclipse工作区中拥有的其他项目。在“ Java Build Path”->“ Projects”选项卡下添加项目依赖项,并在“ Order and Export”中选择项目后,我得到了java.lang.NoClassDefFoundError。 我假设其他项目未正确包含在插件中。有谁知道如何解决这一问题? 谢谢,詹姆斯 问题答案: E

  • 本文向大家介绍gradle 依赖于另一个Gradle项目,包括了gradle 依赖于另一个Gradle项目的使用技巧和注意事项,需要的朋友参考一下 示例 对于多项目gradle构建,有时可能需要依赖构建中的另一个项目。为此,请在项目的依赖项中输入以下内容: ':OtherProject'从目录结构的根引用的项目gradle路径在哪里。 为了':OtherProject'在build.gradle文

  • 我正在寻找一种方法来刷新我的渐变依赖关系,而不必重新生成项目。我正在使用智能和它的渐变包装器。我尝试过从 IntelliJ 的 gradle UI 运行任务“依赖关系”,我尝试过运行命令 和 ,两者都不起作用。让 gradle 下载新依赖项的唯一方法是使用来自 IntelliJ UI ,但我不喜欢这样做,因为 gradle 会自动运行一些我不想运行的任务,而我只想刷新依赖项。

  • 我有一个使用Gradle作为构建工具的项目和第二个使用Maven的POM的子项目。我没有在子项目上更改构建工具的自由。 我想要实现的是将我的项目添加到Maven POM中,作为我的Gradle项目的依赖项。 其中root(当前目录)是我的Gradle项目,并包含,Maven项目位于下,POM文件就在该目录下。 我在我的< code>build.gradle文件中尝试了这些变化: 第一次尝试: 第二