lombok-maven-plugin delombok你的源码

现在有越来越多的人喜欢用lombok简化自己的代码,但是在用maven打包生成源码时就会碰到一个问题

源码是用lombok注解的,class文件是lombok根据你的java代码生成出来的,别人在引用你的jar包的时候,点击查看源码,就会发现class文件匹配不上你的源码

如果你使用的是IntelliJ IDEA,打开源码,就会出现以下的错误信息
1554895080938.jpg

这种问题在你写一些client包或者一些工具包提供给他人使用的时候会碰到,一般人可能就会选择忽略,但是这个问题在debug的时候可能会定位不到源码中的那一行真正的代码,还是需要想办法解决的

使用lombok-maven-plugin插件就能解决问题


    org.projectlombok
    lombok-maven-plugin
    1.18.4.0
    
        
            generate-sources
            
                delombok
            
            
                false
                src/main/java
                
                    
                
            
        
    

sourceDirectory的默认值为src/main/lombok里,但是一般我们代码会放在src/main/java
formatPreferences是配置delombok代码的样式,其他参数可以参考https://github.com/rzwitserloot/lombok/blob/master/src/delombok/lombok/delombok/FormatPreferences.java

插件生成完的代码会在generated-sources/delombok目录下,而使用maven-source-plugin打包,会对sourceDirectory下的源码进行打包,sourceDirectory的默认值是src/main/java,所以我们要把他改成lombok插件生成完的源码目录


    ${project.build.directory}/generated-sources/delombok

如果你使用了IDE,它会读取sourceDirectory当做你的源码目录,这样就不对了,所以我们把这个目录添加到单独的profile里


    
        delombok
        
            ${project.build.directory}/generated-sources/delombok
        
    

sourceDirectory里使用


    ${src.dir}

设置默认值


    src/main/java

然后使用命令mvn install -Pdelombok clean就可以打包了

另外,上面这种方法也是无奈之举,也是不够优雅的,但是这个插件的作者至今也没解决这个问题,期待着哪天这个问题解决了有人能告诉我

你可能感兴趣的:(lombok-maven-plugin delombok你的源码)