Dagger 使用 jakarta 来生成代码

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

我的项目中有以下依赖项:

      <groupId>com.google.dagger</groupId>
      <artifactId>dagger</artifactId>
      <version>2.52</version>
    </dependency>

我有这个注释处理器:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.13.0</version>
        <configuration>
          <release>17</release>
          <annotationProcessorPaths>
            <!-- Dagger 2 -->
            <path>
              <groupId>com.google.dagger</groupId>
              <artifactId>dagger-compiler</artifactId>
              <version>2.52</version>
            </path>
          </annotationProcessorPaths>
        </configuration>
      </plugin>

现在,当我使用 intellij 让 dagger 生成其代码时,我看到这样的内容:

import dagger.internal.DaggerGenerated;
import dagger.internal.Factory;
import dagger.internal.Preconditions;
import dagger.internal.QualifierMetadata;
import dagger.internal.ScopeMetadata;
import javax.annotation.processing.Generated;
import javax.inject.Provider;

@ScopeMetadata("jakarta.inject.Singleton")
@QualifierMetadata
@DaggerGenerated
@Generated(
   value = "dagger.internal.codegen.ComponentProcessor",
   comments = "https://dagger.dev"
)

我想知道为什么导入引用 javax,当我专门增加了 dagger 和 dagger-compiler 版本时。如何指示 Dagger 生成导入 jakarta.inject.Provider 而不是 javax.inject.Provider 的代码?

java jakarta-ee maven-plugin dagger-2
1个回答
0
投票

这是因为

Dagger 2.52
具有
javax-inject
jakarta.inject-api
依赖项。

enter image description here

修复:

当开始输入类/接口时,IntelliJ 将为您提供选项,如下所示:

enter image description here

enter image description here

jakarta.inject.*
包中选择类/注入,而不是
javax.inject.*

更新此:

import dagger.internal.DaggerGenerated;
import dagger.internal.Factory;
import dagger.internal.Preconditions;
import dagger.internal.QualifierMetadata;
import dagger.internal.ScopeMetadata;
import jakarta.annotation.Generated;
import jakarta.inject.Provider;

@ScopeMetadata("jakarta.inject.Singleton")
@QualifierMetadata
@DaggerGenerated
@Generated(
   value = "dagger.internal.codegen.ComponentProcessor",
   comments = "https://dagger.dev"
)
© www.soinside.com 2019 - 2024. All rights reserved.