首页 > 解决方案 > 如何配置一个 gradle 多模块项目?

问题描述

我有 3 个微服务,现在我需要为所有微服务创建一个 docker-compose。因此,当我尝试将我所有的微服务放在一个项目中时,我遇到了这个问题

Project directory 'C:\Users\Dany\IdeaProjects\target-root\target-discovery\app' is not part of the build defined by settings file 'C:\Users\Dany\IdeaProjects\target-root\settings.gradle.kts'. If this is an unrelated build, it must have its own settings file.

我必须阅读什么来修复它?

设置.gradle.kts

在此处输入图像描述

项目结构

在此处输入图像描述

标签: kotlingradlemulti-module

解决方案


包含settings.gradle.kts应如下所示:

include(
  ":target-discovery"
)

如果有更多子文件夹(例如 target-discovery/app、target-discovery/app2):

include(
  ":target-discovery:app",
  ":target-discovery:app2"
)

定义一个模块时,它应该总是以它开头,:子文件夹应该由:

还要确保您的根目录build.gradle.kts定义所有相关插件或在每个子模块中定义它们。您还可以创建约定(https://docs.gradle.org/current/samples/sample_convention_plugins.html

如果您只是plugins在根目录中定义它不会影响您的子项目,实现它的一种方法(尽管我更喜欢约定插件)是:

构建.gradle.kts

plugins {
  kotlin("jvm") version ...
}

subprojects {
  apply(plugin = "kotlin")
}

推荐阅读