Dagger 类在构建文件夹中生成,但无法使用 Dagger 2 将它们导入到 Java 项目中

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

我正在编写 Dagger 2 教程。我正在使用 vscode 和

build.gradle.kts
。我可以在我的
build
文件夹中看到 Dagger 前缀类已经生成。但是,vscode LSP 无法检测到它们,并且我无法运行 main 函数而不收到错误提示
DaggerCommandRouterFactory cannot be resolved

build.gradle.kts

plugins {
    kotlin("jvm") version "1.7.10"
    kotlin("kapt") version "1.7.10"
    application
}

repositories {
    mavenCentral()
    google() // required for Dagger
}

application {
    mainClass.set("dagger.CommandLineAtm")
}

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>() {
    kotlinOptions.jvmTarget = "17"
}

java {
    toolchain.languageVersion.set(JavaLanguageVersion.of(17))
}

dependencies {

    val daggerVersion = "2.46.1"

    implementation("com.google.dagger:dagger:${daggerVersion}")
    implementation("javax.inject:javax.inject:1");
    implementation("org.junit.jupiter:junit-jupiter-api:5.5.1");

    kapt("com.google.dagger:dagger-compiler:${daggerVersion}")

    testImplementation("org.jetbrains.kotlin:kotlin-test:1.7.10")

}

kapt {
    mapDiagnosticLocations = true // include the Kotlin files into error reports
}

文件夹结构

- dagger
  - app
    - src/main
      - java/dagger
        - Command.java
        - CommandLineAtm.java
        - CommandRouter.java
        - CommandRouterFactory.java
        - Result.java
        - Status.java
    - build                              // Listing subset
      - generated
        - source
          - kapt
            - main/dagger
              - CommandRouter_Factory.java
              - DaggerCommandRouterFactory.java

这是我在 vscode 的 gradle 选项卡中看到的屏幕截图:

  1. 我点击

    build
    ,构建成功

  2. 如果我单击

    application > run
    ,我会收到一条消息,提示
    build successful
    ,但应用程序实际上并未运行。

  3. 如果我通过单击

    run
    main
    函数上方的
    CommandLineAtm
    来运行,则会收到错误

    PS C:\Users\xyz\projects\dagger> c:; cd 'c:\Users\xyz\projects\dagger'; & 'C:\Users\xyz\AppData\Local\Programs\Eclipse Adoptium\jdk-17.0.7.7-hotspot in\java.exe' '@C:\Users\xyz\AppData\Local\Tem

java visual-studio-code gradle dagger-2 gradle-kotlin-dsl
© www.soinside.com 2019 - 2024. All rights reserved.