[英]Configurable annotation processors in maven modules
我们有多个使用某些注释处理器的服务。 所有这些服务有两个共同点——同一个父 pom 和一个特定的pom
- import
- dependency
中的dependencyManagement
项。 在各个服务中,我们使用下面的代码片段定义处理器
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<artifactId>mapstruct-processor</artifactId>
<groupId>org.mapstruct</groupId>
<version>${mapstruct.version}</version>
</path>
<path>
<artifactId>lombok</artifactId>
<groupId>org.projectlombok</groupId>
<version>${projectlombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
<groupId>org.apache.maven.plugins</groupId>
</plugin>
这里的问题是每个服务都需要自己定义处理器的版本。 我只是不想将处理器添加到父 pom,因为有许多服务不使用 lombok 或 mapstruct,所以不想为它们添加额外的处理器。 任何可用的解决方案,我可以最好在 bom 依赖项或父 pom 中指定处理器的版本,并且服务可以决定他们想要使用哪个处理器?
您可以在父 pom.xml 中使用<properties>
并在子 pom.xml 文件中使用它们。
在父 pom.xml
<properties>
<project.lombok.version>1.2.3</project.lombok.version>
</properties>
在子 pom.xml 中您需要使用的版本
<artifactId>lombok</artifactId>
<groupId>org.projectlombok</groupId>
<version>${project.lombok.version}</version>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.