我正在尝试在我使用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.
似乎一切都好.但是当我编译测试时,错误来了:找不到方法getXXX和setXXX.
我用IntelliJ打开了.class文件,发现没有setXXX和getXXX方法.
有人可以告诉我为什么吗?
我在ubuntu上使用IntelliJ IDEA.我将lombok.jar添加到我的项目中并为IDEA安装了Lombok插件.我可以访问注释,但不会生成getter和setter.如果我尝试访问不存在的getter或setter方法,我会得到相同的错误.我能错过什么?
我有一个maven项目,在命令行没有问题的情况下构建.但是,当我使用IntelliJ构建它时,我收到错误:
java: FileName.java:89: cannot find symbol
symbol : variable log
Run Code Online (Sandbox Code Playgroud)
java文件中没有定义或导入日志,但有一个
@Slf4j
final public class FileName {
Run Code Online (Sandbox Code Playgroud)
应该定义日志类的类体之前的语句.
在项目结构窗口中,类为:
Maven: org.slf4j:jcl-over-slf4j:1.6.1
Maven: org.slf4j:slf4j-api:1.6.6
Maven: org.slf4j:slf4j-log4j12:1.6.6
Maven: org.slf4j:slf4j-simple:1.6.6
Run Code Online (Sandbox Code Playgroud)
列在库下,表示已下载并可用.
知道为什么这会通过命令行与maven一起构建,而不是通过IntelliJ以及如何解决问题?