首页 > 解决方案 > 设置多项目/复合构建时的 Gradle 错误

问题描述

我正在尝试为我正在处理的 kotlin 项目设置一个多项目/复合 gradle 构建,并且遇到了一些错误。我的 settings.gradle 文件中有这个:

def projects = [
    'shared-library'
]

for (String relativeProject : projects) {
    File file = new File(settingsDir, "../$relativeProject")

    if (file.exists()) {
        include(relativeProject) 
        project(":$relativeProject").projectDir = new File(settingsDir, "../$relativeProject")
    }
} 

当项目构建时,我收到此错误:

org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':shared-library'.
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.gradle.internal.exceptions.LocationAwareException: Build file '/home/stormblessed/Soft/ApiGateway/build.gradle' line: 3
Error resolving plugin [id: 'org.jetbrains.kotlin.jvm', version: '1.3.21']
Caused by: org.gradle.api.GradleException: Error resolving plugin [id: 'org.jetbrains.kotlin.jvm', version: '1.3.21']
    at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolveToFoundResult(DefaultPluginRequestApplicator.java:256)
... 135 more
Caused by: org.gradle.plugin.management.internal.InvalidPluginRequestException: Plugin request for plugin already on the classpath must not include a version

奇怪的是,我为 Java 项目设置了完全相同的设置,并且 java 插件没有与之关联的版本,因此这可能与它有关,不会导致 java 项目失败。

我阅读了一个 github 问题,该问题描述了我的相同问题,并且建议我使用的解决方案,includeBuild而不是include并且有效,除了我现在收到一个新错误:

org.gradle.api.GradleScriptException: A problem occurred evaluating settings 'api-gateway'.
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
Caused by: org.gradle.api.UnknownProjectException: Project with path ':shared-library' could not be found.
    at jdk.internal.reflect.GeneratedMethodAccessor426.invoke(Unknown Source)
    at settings_eft3sns2cik3i85f9zhag0eho.run(/home/stormblessed/Soft/Personal/api-gateway/settings.gradle:13)

我不确定如何让我的项目保持独立,同时将它们组合在一起以共享依赖项和编译。我将如何解决这个问题?

标签: javagradlekotlinbuildbuild.gradle

解决方案


推荐阅读