将项目(模块)声明为另一个项目(另一个模块)中的依赖项但失败
Declaring a project (module) as a dependecy in another project(another module) but failed
我创建了一个名为 my-root-project
的 gradle 项目,在该项目下还有另外两个 gradle 项目:shared
和 my-service
。
在我的 IntelliJ IDE 中,我添加了 shared
和 my-service
作为 my-root-project
的模块。项目结构总体如下所示:
-my-root-project
-shared
-build.gradle
-settings.gradle
-my-service
-build.gradle
-settings.gradle
-build.gradle
-settings.gradle
...
在 my-root-project
的 settings.gradle
我有:
rootProject.name = 'my-root-project'
include ':shared'
include ':my-service'
在my-service
的build.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-service
的 settings.gradle
中。 (以上,我已经包含在my-root-project
的settings.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
.
中的依赖项
听起来您正在从 my-service
项目目录中 运行 执行 Gradle 命令。由于该项目包含一个 settings.gradle
文件,因此 Gradle 认为该项目是根项目。在这个“根项目”下,没有名为 shared
的子项目,所以 Gradle 抱怨你看到的错误:
A problem occurred evaluating root project 'my-service'.
> Project with path ':shared' could not be found in root project 'my-service'.
我建议更改两件事(但其中任何一个都应该让你摆脱错误):
- 在多项目构建中应该只有一个
settings.gradle
文件 – 在根项目中,即您的 my-root-project
。如果您查看 the Gradle docs for multi-project builds,您会发现每个示例项目层次结构中只有一个 settings.gradle
文件。
- 我会 运行 根项目目录中的所有 Gradle 命令。如果您需要 运行 子项目中的任务,则使用任务的完整路径,例如:
./gradlew :my-service:check
您可以在 the Gradle docs. 中找到有关在多项目构建中执行任务的更多信息
我创建了一个名为 my-root-project
的 gradle 项目,在该项目下还有另外两个 gradle 项目:shared
和 my-service
。
在我的 IntelliJ IDE 中,我添加了 shared
和 my-service
作为 my-root-project
的模块。项目结构总体如下所示:
-my-root-project
-shared
-build.gradle
-settings.gradle
-my-service
-build.gradle
-settings.gradle
-build.gradle
-settings.gradle
...
在 my-root-project
的 settings.gradle
我有:
rootProject.name = 'my-root-project'
include ':shared'
include ':my-service'
在my-service
的build.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-service
的 settings.gradle
中。 (以上,我已经包含在my-root-project
的settings.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
.
听起来您正在从 my-service
项目目录中 运行 执行 Gradle 命令。由于该项目包含一个 settings.gradle
文件,因此 Gradle 认为该项目是根项目。在这个“根项目”下,没有名为 shared
的子项目,所以 Gradle 抱怨你看到的错误:
A problem occurred evaluating root project 'my-service'.
> Project with path ':shared' could not be found in root project 'my-service'.
我建议更改两件事(但其中任何一个都应该让你摆脱错误):
- 在多项目构建中应该只有一个
settings.gradle
文件 – 在根项目中,即您的my-root-project
。如果您查看 the Gradle docs for multi-project builds,您会发现每个示例项目层次结构中只有一个settings.gradle
文件。 - 我会 运行 根项目目录中的所有 Gradle 命令。如果您需要 运行 子项目中的任务,则使用任务的完整路径,例如:
./gradlew :my-service:check
您可以在 the Gradle docs. 中找到有关在多项目构建中执行任务的更多信息