我第一次使用项目lombok并且在运行构建时遇到maven编译项目时遇到问题我收到错误,其中调用带有项目lombok注释的方法.
这是带注释的参数:
private @Getter @Setter String paymentNonce = null;
Run Code Online (Sandbox Code Playgroud)
例如,在这一行中,maven打破了构建:
if (!StringUtilities.isNullOrEmpty(getPaymentNonce())) {
Run Code Online (Sandbox Code Playgroud)
这是我的maven依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
maven错误:
[INFO] Compiling 158 source files to C:\java\repos\luna\cloudflow\cloudflow-ejb\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] \java\repos\luna\cloudflow\cloudflow-ejb\src\main\java\si\arctur\controller\PaymentProcessor.java:[94,38] error: cannot find symbol
[ERROR] \java\repos\luna\cloudflow\cloudflow-ejb\src\main\java\si\arctur\controller\PaymentProcessor.java:[97,106] error: cannot find symbol
[ERROR] \java\repos\luna\cloudflow\cloudflow-ejb\src\main\java\si\arctur\controller\PaymentProcessor.java:[142,2] error: cannot find symbol
[ERROR] \java\repos\luna\cloudflow\cloudflow-ejb\src\main\java\si\arctur\controller\ShoppingCart.java:[27,6] error: cannot find symbol
[ERROR] \java\repos\luna\cloudflow\cloudflow-ejb\src\main\java\si\arctur\controller\ShoppingCart.java:[32,75] error: cannot find symbol
.....
Run Code Online (Sandbox Code Playgroud)
我正在使用java 8
我在Eclipse中有lombok插件并在Eclipse编译器中启用了Eclipse中的注释处理,但是当我使用@ Slf4j注释时它仍然无法识别日志语句.
我们必须进行任何其他设置吗?
与Eclipse中的代码模板/代码生成相比,Project Lombok是否提供了任何好处?是否有任何缺点(除了包括.jar)?
有没有人成功地将Ant4Eclipse(http://www.ant4eclipse.org/)与Project Lombok(http://projectlombok.org/)结合使用?
Lombok提供了删除样板代码的注释; 然而,它似乎与Ant4Eclipse(Eclipse项目的无头编译)完美搭配.例如,以下Lombok示例在Eclipse和javac中编译良好:
import lombok.Getter;
public class LombokTest {
private @Getter String foo;
public LombokTest() {
String s = this.getFoo();
}
}
Run Code Online (Sandbox Code Playgroud)
但是使用Ant4Eclipse进行编译会<buildJdtProject>产生以下结果:
[javac] Compiling 1 source file
[javac] ----------
[javac] 1. WARNING in C:\dev\Java\workspace\LombokTest\src\LombokTest.java (at line 4)
[javac] private @Getter String foo;
[javac] ^^^
[javac] The field LombokTest.foo is never read locally
[javac] ----------
[javac] 2. ERROR in C:\dev\Java\workspace\LombokTest\src\LombokTest.java (at line 8)
[javac] String s = this.getFoo();
[javac] ^^^^^^
[javac] The method …Run Code Online (Sandbox Code Playgroud) 最近我们开始在我们的项目中使用Lombok功能.我们有@DataDomain对象的注释,因为运行时有一些hashCode()由Lombok api提供的方法抛出的异常.后来,当我添加@Setter而@Getter不是@Data,我没有看到任何问题.
问题1:请问龙目@Data覆盖像一类的现有方法hashCode()和toString()?
问题2:为什么hashCode()在这里出问题?
出于测试目的,我想使用Jetty 8仅提供静态内容.我知道如何从命令行启动Web服务器:
java -jar start.jar jetty.port = 8082
我希望能够使用香草码头,最好是8或7,并使用以下内容启动它:
java -jar start.jar OPTIONS = resources resources.root = ../foo jetty.port = 8082
然后可以从服务器的根目录访问这些文件.调用的文件../foo/x.html应该可以访问http://localhost:8082/x.html.
我不想创建一个WAR文件或任何花哨的东西.最好不要在服务器端进行任何缓存,使文件在Windows机器上解锁.此外,我只想提供文件,甚至位于子目录中,没有花哨的文件浏览器或从客户端修改它们的方法.
这可能吗?如果不是,完成此类行为所需的最低配置是多少?
附加信息
我试过以下命令.我希望能够浏览Jetty 8附带的javadoc http://localhost:8080/javadoc/,但它总能给我一个404
java -jar start.jar --ini OPTIONS =服务器,资源等/ jetty.xml contexts/javadoc.xml
我已经安装了java7 jre:java -version
java版"1.7.0_02"
Java(TM)SE运行时环境(版本1.7.0_02-b13)
Java HotSpot(TM)64位服务器VM(内置22.0-b10,混合模式)
我想测试-server选项是否在JRE中有效.这似乎是我机器上的默认设置.我还想检查是否支持-server和-client选项.所以我写了以下程序:
public class Info {
public static void main(String... args) {
System.out.println(System.getProperty("java.vm.name"));
System.out.println(System.getProperty("java.vm.version"));
System.out.println(System.getProperty("java.vm.info"));
}
}
Run Code Online (Sandbox Code Playgroud)
如果我从jre7\bin安装文件夹发出命令java -client -cp e:\ temp Info,程序将打印:
Java HotSpot(TM)64位服务器VM
22.0-B10
混合模式
它为-server打印相同的内容.
在java7 jre中是否忽略了-client和-server?是否有关于此行为的在线文档?
PS我知道现在有分层编译.