【问题标题】:Can a maven plugin configuration be aggregated from parent to child projectmaven插件配置可以从父项目聚合到子项目吗
【发布时间】:2019-02-11 22:23:41
【问题描述】:

我有 3 个 maven 项目,父项目、中间项目和子项目:

Parent-->Middle-->Child

然后我有 2 个注解处理器依赖项。

父项目将maven-compiler-plugin定义为托管插件,并在annotationProcessorPath上配置注解处理器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>

从中间起:

<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>

谁能告诉我不同​​层次结构级别(父级、中间级)的技术来向插件添加配置,以便子级具有来自两者的聚合配置

【问题讨论】:

    标签: java maven maven-compiler-plugin


    【解决方案1】:

    如下:

    根项目 - 包含带有插件 X 及其默认配置的 pluginManagement 部分

    子项目 - 包含插件 X 部分;本节中添加的任何配置都将附加到根的默认配置(或覆盖 - 如果重新定义相同的参数)。

    在您的情况下,root 应该包含带有 annotation1 的 pluginManagement; middle 应该包含带有 annotation2 的插件(这将添加到默认的 annotaion1); child 将继承 middle 带有两个注释的插件配置。

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 2011-02-18
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      相关资源
      最近更新 更多