我在项目的maven中有一个根模块和子模块。我正在尝试使用 Lombok 。 我已经添加了
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.12</version>
<scope>provided</scope>
</dependency>
根 pom.xml。 在子模块中,我有一个带有 Lombok 注释的类。 当我尝试构建项目时,我得到了很多
cannot find symbol
我试图调用 getter 和 setter 的地方。
我尝试在根 pom 和子 pom 中以及 delombok 中使用具有相同版本 (1.16.12) 的 lombok-maven-plugin 并将我的注释类移动到 src/main/lombok,我已经浏览了SO中几乎所有的问题,尝试了所有的变体,但没有成功。
我正在使用 3.6.1 版本的 Maven 3、Java 8、maven-compiler-plugin。
我应该如何配置项目才能使用lombok?或者也许我做错了。
最佳答案
这不是对似乎已经解决的问题的直接回答,但可以作为 future 搜索者的引用:
如果你使用 Dagger(或其他东西)来处理你的注释,比如
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-compiler</artifactId>
<version>2.15</version>
</path>
</annotationProcessorPaths>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
....
</plugins>
</build>
你必须添加 lombok 作为路径
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>com.google.dagger</groupId>
<artifactId>dagger-compiler</artifactId>
<version>2.15</version>
</path>
<!-- SOLUTION -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</path>
</annotationProcessorPaths>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
....
</plugins>
</build>
您仍然必须将 lombok 列为提供的依赖项。
关于java - 如何使用 maven-compiler-plugin 配置 Lombok?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42257379/