我刚刚在SO上发布了这个问题,关于Lombok未生成我的getter/setter。事实证明它与AspectJ产生了冲突。如果我禁用AspectJ,那么getter/setter将被适当地生成。
我的猜测是ajc编译器无法识别lombok。
Lombok和AspectJ是否互斥?这两种技术能否共同使用?
我刚刚在SO上发布了这个问题,关于Lombok未生成我的getter/setter。事实证明它与AspectJ产生了冲突。如果我禁用AspectJ,那么getter/setter将被适当地生成。
我的猜测是ajc编译器无法识别lombok。
Lombok和AspectJ是否互斥?这两种技术能否共同使用?
2022年 - AWS文档中的Lambda Powertools FAQ中有对此的答案:https://awslabs.github.io/aws-lambda-powertools-java/FAQs/
要启用原地编织功能,您需要使用以下aspectj-maven-plugin配置:
<configuration>
<forceAjcCompile>true</forceAjcCompile>
<sources/>
<weaveDirectories>
<weaveDirectory>${project.build.directory}/classes</weaveDirectory>
</weaveDirectories>
...
<aspectLibraries>
<aspectLibrary>
<groupId>software.amazon.lambda</groupId>
<artifactId>powertools-logging</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>compile</scope>
</dependency>
例如:
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.8</version>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.18</version>
<scope>compile</scope>
</dependency>
</dependencies>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<complianceLevel>${java.version}</complianceLevel>
<encoding>${project.build.sourceEncoding}</encoding>
<verbose>true</verbose>
<privateScope>true</privateScope>
<showWeaveInfo>true</showWeaveInfo>
<outxml>true</outxml>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
<configuration>
<aspectLibraries combine.self="override">
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
</execution>
</executions>
</plugin>