【问题标题】:Declaring a project (module) as a dependecy in another project(another module) but failed将项目(模块)声明为另一个项目(另一个模块)中的依赖项但失败
【发布时间】:2021-10-17 20:06:00
【问题描述】:

我创建了一个名为my-root-project的gradle项目,在其下还有另外两个gradle项目:sharedmy-service

在我的 IntelliJ IDE 中,我添加了 sharedmy-service 作为 my-root-project 的模块。项目结构整体如下:

-my-root-project

  -shared
    -build.gradle
    -settings.gradle

  -my-service
    -build.gradle
    -settings.gradle

-build.gradle
-settings.gradle
...

my-root-projectsettings.gradle 中,我有:

rootProject.name = 'my-root-project'
include ':shared'
include ':my-service'

my-servicebuild.gradle 中,我想添加shared 作为其项目依赖项:

...
dependencies {
   implementation project(':shared')
}

但我得到错误:

A problem occurred evaluating root project 'my-service'.
> Project with path ':shared' could not be found in root project 'my-service'.

然后,我尝试将shared 也包含在my-servicesettings.gradle 中。 (以上,我已经将它包含在my-root-projectsettings.gradle中)。

然后,再次构建,但出现新错误:

Could not resolve project :shared.
Required by:
    project :

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

我哪里错了?我想让shared 项目成为my-service 中的依赖项。

【问题讨论】:

    标签: gradle build.gradle gradlew


    【解决方案1】:

    听起来您是在 my-service 项目目录中运行 Gradle 命令。由于该项目包含一个settings.gradle 文件,Gradle 认为该项目是根项目。在这个“根项目”下,没有名为shared 的子项目,所以Gradle 报错你看到的错误:

    评估根项目“我的服务”时出现问题。
    > 在根项目“my-service”中找不到路径为“:shared”的项目。

    我建议更改两件事(但其中任何一个都可以让您摆脱错误):

    1. 在多项目构建中应该只有一个 settings.gradle 文件 - 在根项目中,即您的 my-root-project。如果您查看the Gradle docs for multi-project builds,您会发现每个示例项目层次结构中只有一个settings.gradle 文件。
    2. 我会从根项目目录运行所有 Gradle 命令。如果需要在子项目中运行任务,则使用任务的完整路径,例如:./gradlew :my-service:check
      您可以在the Gradle docs 中找到有关在多项目构建中执行任务的更多信息。

    【讨论】:

    • 谢谢!和你解释的完全一样。
    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 2015-02-20
    • 2017-03-02
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多