Gradle5中的Gradle kotlin未解决的参考:dependtest

问题描述 投票:0回答:1

用于工作的Kotlin源代码的多模块项目在升级到Gradle 5.2后停止工作,因为找不到编译项目('depend-test')依赖项中的Kotlin类。

  1. 试图更改插件版本
  2. 已经看过https://github.com/gradle/gradle/issues/8980

我在项目中定义了qazxsw poi类('depend-test')

Test

我想在项目中使用object Test { const val test = "123" } 类('test-test')

Test

当我想构建项目('test-test')到jar我使用gradle bootJar。我得到这个错误:

package com.example.test.controller

import com.example.dependtest.Test
import org.slf4j.LoggerFactory
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RestController

@RestController
@RequestMapping
class TestController {

    private val log = LoggerFactory.getLogger(TestController::class.java)

    @GetMapping(value = ["/test"])
    fun test() {
        log.info(Test.test)
    }
}

预期行为应该找到编译项目('depend-test')依赖项中的Kotlin类。

当前行为找不到编译项目('depend-test')依赖项中的Kotlin类:

spring-boot gradle kotlin gradle-kotlin-dsl
1个回答
0
投票

我创建了两个模块,test-test和depend-test。 depend-test项目是test-test的依赖项。我试图调用depend-test的参数,但它无法编译和打包。

Env

  • gradle这个-5.2.1
  • Kotlin 1.3.31
  • Spring Boot 2.1.4
  • java 1.8

step one

  • 编辑settings.gradle

> Task :test-test:compileKotlin FAILED
e: /Users/houshuai/Documents/dev/demo/test/test-test/src/main/kotlin/com/example/test/controller/TestController.kt: (3, 20): Unresolved reference: dependtest
e: /Users/houshuai/Documents/dev/demo/test/test-test/src/main/kotlin/com/example/test/controller/TestController.kt: (22, 18): Unresolved reference: Test
  • 我使用了1.3.3版本的kotlin插件。 build.gradle文件如下所示
rootProject.name = 'demo'
include ":depend-test"
include ":test-test"
project(":depend-test").projectDir = file("depend/depend-test")
project(":test-test").projectDir = file("test/test-test")

step two

为测试项目构建jar,我用了两种方法,但结果是一样的。

  • 终端使用cmd是buildscript { ext { kotlinVersion = '1.3.31' } repositories { mavenCentral() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'} maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion" } } plugins { id 'org.springframework.boot' version '2.1.4.RELEASE' id 'org.jetbrains.kotlin.jvm' version '1.2.71' id 'org.jetbrains.kotlin.plugin.spring' version '1.2.71' } allprojects { apply plugin: 'idea' apply plugin: 'kotlin' repositories { mavenCentral() } } subprojects { apply plugin: 'kotlin' apply plugin: 'java' apply plugin: 'eclipse' apply plugin: "application" apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' repositories { mavenLocal() maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'} maven { url "https://plugins.gradle.org/m2/" } mavenCentral() jcenter() maven { url "http://repo.spring.io/snapshot" } maven { url "http://repo.spring.io/milestone" } maven { url 'http://maven.springframework.org/release' } maven { url 'http://maven.springframework.org/milestone' } } version = '1.0' apply plugin: 'io.spring.dependency-management' group = 'com.mutil.test' sourceCompatibility = '1.8' compileKotlin { kotlinOptions { freeCompilerArgs = ['-Xjsr305=strict'] jvmTarget = '1.8' } } compileTestKotlin { kotlinOptions { freeCompilerArgs = ['-Xjsr305=strict'] jvmTarget = '1.8' } } dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'com.fasterxml.jackson.module:jackson-module-kotlin' implementation 'org.jetbrains.kotlin:kotlin-reflect' implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' testImplementation 'org.springframework.boot:spring-boot-starter-test' } } dependencies { subprojects.forEach { archives(it) } } repositories { mavenCentral() }
  • 用户IDEA gradle工具

result

无法找到kotlin在子模块中编写的类文件。

我不知道是否缺少必要的插件导致无法正确打包。

© www.soinside.com 2019 - 2024. All rights reserved.