You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从引用BOM的Maven项目中获取BOM内依赖的版本信息?

获取BOM管理的依赖版本并填入POM的description标签

以下是两种无需生成额外文件、符合BOM设计初衷的解决方案:

方案一:使用Maven Dependency Plugin的properties目标

这个目标会将指定依赖的版本注入为Maven会话属性,直接在POM中引用即可:

  1. 在项目的build/plugins中添加插件配置,绑定到生命周期的initialize阶段,确保属性在POM处理前已就绪:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>3.6.1</version>
    <executions>
        <execution>
            <id>resolve-bom-versions</id>
            <phase>initialize</phase>
            <goals>
                <goal>properties</goal>
            </goals>
            <configuration>
                <!-- 精确指定要获取版本的依赖,避免解析所有依赖 -->
                <includeGroupIds>org.apache.commons</includeGroupIds>
                <includeArtifactIds>commons-lang3</includeArtifactIds>
            </configuration>
        </execution>
    </executions>
</plugin>
  1. 在description标签中直接引用生成的属性:
<description>本项目使用 commons-lang3 版本:${org.apache.commons:commons-lang3:version}</description>

方案二:使用Maven Help Plugin的evaluate目标

通过表达式直接从项目的依赖管理上下文提取版本,更灵活:

  1. 添加插件配置,同样绑定到initialize阶段:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-help-plugin</artifactId>
    <version>3.4.0</version>
    <executions>
        <execution>
            <id>extract-commons-lang3-version</id>
            <phase>initialize</phase>
            <goals>
                <goal>evaluate</goal>
            </goals>
            <configuration>
                <!-- 表达式定位BOM中管理的依赖版本 -->
                <expression>${project.dependencyManagement.dependencies[groupId='org.apache.commons',artifactId='commons-lang3'].version}</expression>
                <!-- 将结果存入自定义属性,方便引用 -->
                <property>commons-lang3.version</property>
            </configuration>
        </execution>
    </executions>
</plugin>
  1. 在description中引用自定义属性:
<description>本项目使用 commons-lang3 版本:${commons-lang3.version}</description>

两种方案都直接利用Maven自身的依赖管理机制获取版本,不会破坏BOM统一管控版本的设计,执行mvn clean install等命令时,description会自动填充正确的版本号。

内容的提问来源于stack exchange,提问作者nnevva0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 15:57:33