gpt4 book ai didi

dagger-2 - 在 Lombok 中使用 Dagger2

转载 作者:行者123 更新时间:2023-12-04 04:36:35 26 4
gpt4 key购买 nike

有没有人在 Dagger2 中使用过 Lombok 1.16?

我当前的代码如下所示:

@AllArgsConstructor(onConstructor = @__(@Inject))
public class JuiceMaker {
private final Apple apple;

错误是:
JuiceMaker cannot be provided without an @Inject constructor or from an @Provides-annotated method.

如果没有 Lombok 注释,这实际上有效,因此:
public class JuiceMaker {
private final Apple apple;
@Inject
public JuiceMaker(Apple apple){
this.apple = apple
}
}

作品

最佳答案

这是我的答案的复制粘贴版本 here :

这不是问题的直接答案,似乎已解决,但可以作为 future 搜索者的引用:

如果您使用 Dagger(或其他东西)来处理您的注释,例如

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-compiler</artifactId>
<version>2.15</version>
</path>
</annotationProcessorPaths>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
....
</plugins>
</build>

你必须在这里添加 lombok 作为路径
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-compiler</artifactId>
<version>2.15</version>
</path>

<!-- SOLUTION -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</path>


</annotationProcessorPaths>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
....
</plugins>
</build>

但是您仍然必须将 lombok 列为提供的依赖项;)

关于dagger-2 - 在 Lombok 中使用 Dagger2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50361786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com