exp*_*ert 185 java intellij-idea lombok
我正在尝试在我使用IntelliJ IDEA 11开发的项目中使用Lombok.
我为IDEA安装了第三方插件,看起来工作正常,因为IDEA会看到所有自动生成的方法/字段.
所以我有一个使用Slf4j的类.我这样注释了它
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class TestClass
{
public TestClass()
{
log.info("Hello!");
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我构建我的项目时,编译器吐出:cannot find symbol variable log.
你能告诉我我在这里失踪了吗?
更新:事实证明它的RequestFactory注释过程失败了.
input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject}
annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave]
Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false.
cannot find symbol variable log
Run Code Online (Sandbox Code Playgroud)
关于变通方法的任何想法?
Update2:也许这不是读者想要听到的东西,但最终我转而使用Scala.
小智 375
我在IDEA 12中通过设置复选框修复了它Enable annotation processing:
设置 - >编译器 - >注释处理器
对于IDEA 2016.2:
首选项...>构建,执行,部署>编译器>注释处理器
gre*_*ror 71
启用注释处理将使其工作
但是,如果您使用的是Mac,请确保从两个可用位置启用注释处理(勾选复选框).
1.)Intellij Idea - >首选项 - >编译器 - >注释处理器
2.)文件 - >其他设置 - >默认设置 - >编译器 - >注释处理器
Cod*_*dow 49
图片表示解决此问题.
发布,您可以从intellij安装lombok插件,(安装后Intellij将重新启动以启用插件,因此请确保保存您的工作.(Intellij会在重新启动之前保存所有更改,只是为了安全起见.) )截图如下:
Val*_* K. 17
在最新的 Gradle 版本中,您应该使用 annotationProcessor:
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
Run Code Online (Sandbox Code Playgroud)
Enr*_*age 15
我正在使用 IntelliJ IDEA 2020.3(社区版)
在这里,除了安装 Lombok 插件并启用注释(由其他答案解释)。我还需要将标志-Djps.track.ap.dependencies=false设置为 Build Process Option¹。
我不需要使用 -javaagent 方法,也不需要设置类路径。
¹。转到:文件 | 设置 | 构建、执行、部署 | 编译器 | “共享构建过程 VM 选项”字段
参考:
小智 12
在 pom.xml 中包含以下内容对我有用:
<build>
<defaultGoal>spring-boot:run</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
...
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</build>
Run Code Online (Sandbox Code Playgroud)
如果您已按如下方式检查这两个步骤
然后仍然会收到错误请检查编译器 - 如果它是JAVAC或ECLIPSE.
您可以在首选项 - >构建,执行,部署 - >编译器 - > Java编译器中检查编译器.
将Use编译器更改为Javac(如果它是Eclipse).这对我有用.
intellij有一个插件.见这里:https://projectlombok.org/download.html
仅供参考,使用IntelliJ 2018.3,我通过以下三个步骤解决了此问题(使用@Data批注插入getter/setter):
请记住要应用更改。
最好的祝愿 :)
Gradle的示例:
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142779 次 |
| 最近记录: |