我正在尝试在我使用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.
我使用Lombok的注释有困难,因为似乎jar甚至没有导入项目:
import lombok.extern.slf4j.Slf4j;
/**
* Created by John on 2017-03-20.
*/
@Slf4j
public class App {
public static void main(String[] args)
{
log.info("Hello");
}
}
Run Code Online (Sandbox Code Playgroud)
它说:
无法解析方法信息(java.lang.String)
编译时:
错误:(6,1)java:package org.slf4j不存在
我做了:
我在这里寻找解决方案:
仍然是同样的问题.任何建议都会得到满足.
更新:pom.xml如果有帮助:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>example</groupId>
<artifactId>com</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.14</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud) 我在我的实体中使用了 lombok 注释“@Data”。我试图使用 Dto Converter 的 getter,就像我在没有 lombok 的情况下正常使用一样。不知何故,它不像我预期的那样工作。看起来我的 lombok 没有创建 getter 或者我没有访问权限?
@Entity
@Table(name = "product")
@Data
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
Run Code Online (Sandbox Code Playgroud)
Dto转换器:
public class ProductEntityToProductDetailsDtoConverterImpl {
@Override
public ProductDetailsDto convert(Product product) {
return new ProductDetailsDto(
product.getId(),
product.getName()
);
}
}
Run Code Online (Sandbox Code Playgroud)