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