我有3个Maven项目,即父项目,中间项目和子项目:
Parent-->Middle-->Child
然后我有2个注释处理器依赖项。
父项目将maven-compiler-plugin定义为托管插件,并在commentProcessorPath上配置注释处理器1。中间项目也是如此,并在annotationProcessorPath上配置注释处理器2。
Parent-->Middle-->Child
| |
AP1 AP2
然后,子项目的编译失败,因为其缺少注释处理器1,因为其配置来自中间项目。简单的答案是,只需将Processor1添加到中间插件配置中即可。
但是,我真正想要的是让孩子从父级和中间级继承托管配置并将它们聚合。也许是到深夜,但是我的直觉告诉我,maven可以解决这个问题,但是我很想念它。
这是来自父pom:
<groupId>myproject</groupId>
<artifactId>base</artifactId>
<version>1.2-SNAPSHOT</version>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>myproject/groupId>
<artifactId>annotation1</artifactId>
<version>1.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</pluginManagement>
从中间pom:
<parent>
<groupId>myproject</groupId>
<artifactId>base</artifactId>
<version>1.2-SNAPSHOT</version>
</parent>
<artifactId>middle</artifactId>
<version>1.1-SNAPSHOT</version>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>myproject/groupId>
<artifactId>annotation2</artifactId>
<version>1.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</pluginManagement>
有人可以向我展示用于不同层次结构(父级,中间级)的技术,以向插件添加配置,以便子级具有两者的聚合配置
答案 0 :(得分:1)
如下:
根项目-包含带有插件X及其默认配置的pluginManagement部分
子项目-包含插件X部分;本节中添加的任何配置都将附加到根的默认配置中(或覆盖-如果重新定义了相同的参数)。
在您的情况下,根应包含带有注释1的pluginManagement; 中间应包含带有注解2的插件(此插件将添加到默认的annotaion1中); 子将从具有两个注释的插件配置的中间继承。