不带父pom的版本的插件管理

时间:2018-08-01 21:56:19

标签: java maven spring-boot

我正在寻找一种方法,让Spring Boot在不使用Spring Boot Pom作为我的父Pom的情况下管理一些插件版本。基本上,我不需要父pom(长话说,但我不想要一个)。但是,我仍然希望对版本和插件进行版本管理。我从spring文档中找到了以下解决方案来管理依赖项版本,但是找不到如何管理插件版本。是否有与下面的逻辑类似的东西来管理插件的版本?

<dependencyManagement>
    <dependencies>
    <dependency>
        <!-- Import dependency management from Spring Boot -->
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.0.4.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
</dependencies>
</dependencyManagement>

下面是我要管理的示例。在以前的项目中,我的父pom将负责某些插件的版本。

<plugin>
    <groupId>some group<groupId>
    <artifactId>some artifact</artifactId>
    <version>I want this managed without a parent pom</version>

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要自己进行管理。如记录所述,父级处理pluginManagement之类的项目,这些是您使用BOM表时无法获得的。对于Spring Maven插件,您可以将其绑定到所使用的BOM表的任何版本,因为它们的版本相同。

  

如果您不想使用spring-boot-starter-parent,仍然可以通过使用scope = import依赖项来保持依赖项管理(而不是插件管理)的好处,如下所示:

https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-build-systems.html#using-boot-maven-without-a-parent

另外,maven文档中没有像插件的BOM这样的东西

  

此部分仅对pom类型的依赖项支持此作用域。它指示要在指定的POM部分中用有效的依赖关系列表替换的依赖关系。由于已将它们替换,因此具有导入范围的依赖项实际上并不参与限制依赖项的可传递性。

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope

修改

我确实找到了这个https://release-engineering.github.io/pom-manipulation-ext/guide/plugin-manip.html

根据您的POM等的复杂程度以及为什么不想从Spring的父级继承而来,这可能有用。