如何:让Lombok和AspectJ一起工作

缺乏、安全感 2023-07-02 03:22 123阅读 0赞

如何:Maven,Lombok和AspectJ一起

如果您在此页面上,则有自己的用途,您想要配置maven pom.xml以同时启用lombok和Aspectj的用法。解决方案是禁止Aspectj-Maven-plugin重新生成类文件,因为在没有任何配置的情况下,编译和编织过程看起来是这样的:

  1. javac使用lombok将您的.java文件编译为.class文件(生成对应的方法getter,setter等)
  2. Aspectj无需lombok即可从.java文件重新生成类

因此,我们需要使用aspectj插件的就地编织功能:










1个


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18岁


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34


35


36


37


38


39


40


41


42


43


44


45


46


47


48






    <build>


        


        <plugins>


            


            <plugin>


                <groupId>org.codehaus.mojo</groupId>


                <artifactId>aspectj-maven-plugin</artifactId>


                <version>1.4</version>


                <dependencies>


                    <dependency>


                        <groupId>org.aspectj</groupId>


                        <artifactId>aspectjrt</artifactId>


                        <version>1.6.12</version>


                    </dependency>


                    <dependency>


                        <groupId>org.aspectj</groupId>


                        <artifactId>aspectjtools</artifactId>


                        <version>1.6.12</version>


                    </dependency>


                </dependencies>


                <executions>


                    <execution>


                        <phase>process-classes</phase>


                        <goals>


                            <goal>compile</goal>


                        </goals>


                    </execution>


                </executions>


                <configuration>


                    <showWeaveInfo/>


                    <forceAjcCompile>true</forceAjcCompile>


                    <sources/>


                    <weaveDirectories>


                        <weaveDirectory>${project.build.directory}/classes</weaveDirectory>


                    </weaveDirectories>


                    <aspectLibraries>


                        


                    </aspectLibraries>


                    <source>1.6</source>


                    <target>1.6</target>


                </configuration>


            </plugin>


            


        </plugins>


        


    </build>




解决方案的关键是配置中的空源标签和forceAjcCompile = true设置。

发表评论

表情:
评论列表 (有 0 条评论,123人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Lombok工作原理

    相信大家在项目中都使用过Lombok,因为能够简化我们许多的代码,但是该有的功能一点也不少。那么lombok到底是个什么呢,lombok是一个可以通过简单的注解的形式来帮助我们

    相关 Lombok工作原理使用

    Lombok工作原理 在Lombok使用的过程中,只需要添加相应的注解,无需再为此写任何代码。自动生成的代码到底是如何产生的呢? 核心之处就是对于注解的解析上。JDK5

    相关 AOPAspectJ

    需求和问题 以上篇《[AOP是什么][AOP]》中并发访问应用为例子:   多个访问类同时访问一个共享数据对象时,每个访问类在访问这个数据对象时,需要将数据对象上锁,访问完