簡體   English   中英

maven 模塊中的可配置注釋處理器

[英]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.

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