Dagger 2.52 使用 jakarta 生成代码

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

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

<dependency>
    <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
,当我专门增加了daggerdagger-compiler版本时。如何指示 Dagger 生成导入
jakarta.inject.Provider
而不是
javax.inject.Provider
的代码?

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

这是因为

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

enter image description here

修复是从

pom.xml
中的
javax-inject
依赖项中排除 dagger 2.52 依赖项:

<dependency>
    <groupId>com.google.dagger</groupId>
    <artifactId>dagger</artifactId>
    <version>2.52</version>
    <exclusions>
        <exclusion>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
        </exclusion>
    </exclusions>
</dependency>

看看这是否有帮助。

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