簡體   English   中英

Maven 插件配置可以從父項目聚合到子項目嗎

[英]Can a maven plugin configuration be aggregated from parent to child project

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

從中間的 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>

有人可以向我展示不同層次結構(父級、中間級)的技術來向插件添加配置,以便子級擁有來自兩者的聚合配置

如下:

根項目 - 包含帶有插件 X 及其默認配置的 pluginManagement 部分

子項目 - 包含插件 X 部分; 本節中添加的任何配置都附加到根的默認配置(或覆蓋 - 如果重新定義相同的參數)。

在您的情況下,應包含帶有 annotation1 的 pluginManagement; 中間應該包含帶有 annotation2 的插件(這將被添加到默認的 annotaion1); 孩子將從中間繼承帶有兩個注釋的插件配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM