java - 如何使用 maven-compiler-plugin 配置 Lombok?

标签 java maven lombok maven-compiler-plugin

我在项目的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/

相关文章:

java - 如何将现有的 IntelliJ Java 项目添加到 git?

java - Jackson 解析类不起作用

java - SonarQube 无法识别某些 Lombok 注释 - Jacoco 的误导性测试覆盖率结果

java - 如果抛出 JUnit ExpectedException 后如何继续测试?

java - 使用 ws02 身份服务器的 java web 客户端示例

java - 无法检索过程的元数据

java - Maven:如何将 Artifact 复制到特定目录?

eclipse - "Couldn' t 连接到 RemoteTestNG 客户端”在 OSX-mountain-lion 上启动 TestNG 时

java - 无法解决依赖项版本冲突(NoSuchMethodError's)

annotations - Sonar - 通过自定义注释忽略 Lombok 代码