Maven:我可以在 annotationProcessorPath 中使用来自依赖管理的版本吗?

标签 maven lombok annotation-processing

我正在我的 dependencyManagement 中导入共享的“ Material list ”(bom),如下所示:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.mycompany</groupId>
      <artifactId>common-bom</artifactId>
      <version>1.2.3</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

common-bom 定义了版本,然后我就使用它定义的任何版本,像这样:

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
</dependency>

这一切都很好,除了我也有这个

  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <annotationProcessorPaths combine.children="append">
        <annotationProcessorPath>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.18.20</version>
        </annotationProcessorPath>
      </annotationProcessorPaths>
    </configuration>
  </plugin>

所以现在我无论如何都需要指定一个 lombok 版本,不是针对实际的依赖项,而是针对注释处理器路径。有没有办法我可以以某种方式使用相同的值?例如,它可以作为属性存储在公共(public) bom 中吗?

最佳答案

这是不可能的,因为maven-compiler-plugin目前不遵循dependencyManagement规则( MCOMPILER-391 ,去投票吧!)。

现在你唯一能做的似乎就是声明一个lombok.version父 pom 中的属性,并在你的 annotationProcessorPath 中使用它声明。

(注意Spring Boot已经为Lombok定义了这样一个属性)

关于Maven:我可以在 annotationProcessorPath 中使用来自依赖管理的版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69525798/

相关文章:

java - AbstractProcessor 可以检测带注释的方法是否存在编译错误?

maven - 如何将 Github 原始存储库作为代理存储库添加到 Sonatype Nexus?

eclipse - HTTP 500 - 无法为连接 URL '' 创建类 'null' 的 JDBC 驱动程序

java - Lombok 减慢大型项目中的构建过程

java.lang.String 无法转换为 org.slf4j.Marker

java - 注解处理器@autoservice

java - "download-maven-plugin"- 要下载多个文件并重新定位输出目录

Maven内部版本号插件,如何将内部版本号保存在文件中?

java - Lombok 项目 AllArgsConstructor 不工作

java - 在没有实体的文件中 hibernate native 查询