V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
JasonLaw
V2EX  ›  编程

如何使用 Spring Boot 来管理 Maven plugin 的版本?

  •  
  •   JasonLaw · 2020-08-20 16:21:07 +08:00 · 2879 次点击
    这是一个创建于 1582 天前的主题,其中的信息可能已经有所发展或是发生改变。

    maven - Spring Boot - parent pom when you already have a parent pom - Stack Overflow中,使用了

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

    来实现“利用 Spring Boot 管理 dependency 的版本”。那么有没有什么方式可以实现“利用 Spring Boot 管理 plugin 的版本”呢?

    5 条回复    2020-08-20 17:51:49 +08:00
    SoloCompany
        1
    SoloCompany  
       2020-08-20 17:27:14 +08:00   ❤️ 1
    应该不可以

    首先, 一个无关的事情, 使用 <scope>import</scope> 导入存在的比较明显的问题是, 无法覆盖里面定义的 properties, 比如你希望改变所 import 的 kotlin 版本, 就不得不把所有依赖的 kotlin artifacts 重新写一遍

    而如果直接使用 org.springframework.boot:spring-boot-dependencies 作为 parent (也就是继承), 则没有这个问题, 很轻松的就能实现覆盖

    <properties>
    <kotlin.version>1.4.0</kotlin.version>
    </properties>

    回到你说的问题, scope=import 只能导入 dependency management 不能导入 pluginManagement

    所以, 最简单的方案还是使用 parent 继承, 而不是 scope import
    Itach1
        2
    Itach1  
       2020-08-20 17:29:07 +08:00
    spring-boot-dependencies 包含 pluginManagement 来管理 plugin version
    JasonLaw
        3
    JasonLaw  
    OP
       2020-08-20 17:47:33 +08:00
    @SoloCompany #1 我希望它的 parent 是内部的,而不是 Spring Boot 的,所以采用了<scope>import</scope>这种方式。现在的话,就是自己显示地设置 plugin 的版本。
    SoloCompany
        5
    SoloCompany  
       2020-08-20 17:51:49 +08:00
    @JasonLaw #3 我已经和你讨论了 import 的缺陷了, 最要命的一点是覆盖不了属性, 同时 plugin management 无法导入也是另一个明显的缺陷, 所以基本上别无选择, 还是用 parent 继承吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:49 · PVG 11:49 · LAX 19:49 · JFK 22:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.