关于lombok ant编译打包的问题,各位有兴趣的一起研究下
lombok应该大多数人都有接触过,但是最近我在ant编译打包的时候遇到了一个问题困扰我好几天一直都未能解决。。。。
我的lombok是和eclipse集成开发的,安装很简单,直接运行lombok.jar选择eclipse安装路径即重启eclipse可,这不多说。
我用lombok主要是为了方便开发和提高代码可读性,常用的注解主要是@Getter、@Setter@Data@@Log4j等...
在项目部署的时候,eclipse自动编译后export导出的war没有问题,而我项目习惯用ant打包,但是在ant打包的时候老是会报一个异常:
[javac]D:\eclipse-j2ee\app-workspace\app\src\com\ysoft\struts2\TestAction.java:34:找不到符号
[javac]符号:方法getUser_name()
[javac]位置:类com.ysoft.entity.TUser
[javac]System.out.println("abcd"+user.getUser_name());
意思是编译器找不到对象的getUser_name()方法?很纳闷lombok.jar包已经放classpath了啊?怎么编译会出错,后来研究了下,@注解工作是在javac编译过后,再次读取class修改java字节码文件添加相应方法,且lombok.jar要放在bootstrap类加载路劲中,我尝试在ant运行环境的jvm启动参数列表里面加入-cplombok.jar没有效果,加上
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar
也不对,最后我在build.xml的javac里面的<compilerargvalue="...."/>也没有效果,几经周折还是不见成效。实在是搞不定了。。。。。