Jes*_*ica 8 lombok dagger dagger-2
有没有人将Lombok 1.16与Dagger2一起使用?
我当前的代码如下:
@AllArgsConstructor(onConstructor = @__(@Inject))
public class JuiceMaker {
private final Apple apple;
Run Code Online (Sandbox Code Playgroud)
错误是:
JuiceMaker cannot be provided without an @Inject constructor or from an @Provides-annotated method.
Run Code Online (Sandbox Code Playgroud)
如果没有Lombok批注,这实际上可以工作,因此:
public class JuiceMaker {
private final Apple apple;
@Inject
public JuiceMaker(Apple apple){
this.apple = apple
}
}
Run Code Online (Sandbox Code Playgroud)
作品
这是我的答案的复制粘贴版本:
这不是对问题的直接回答,这个问题似乎已经解决了,但可以作为未来搜索者的参考:
如果您使用 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>
Run Code Online (Sandbox Code Playgroud)
您必须在此处添加 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>
Run Code Online (Sandbox Code Playgroud)
但您仍然必须将 lombok 列为提供的依赖项;)
| 归档时间: |
|
| 查看次数: |
1194 次 |
| 最近记录: |