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

如何在Maven Assembly插件中获取pom.xml的项目版本(占位符不生效)

Maven Assembly 插件版本占位符配置修复方案

问题根因

  • 原有配置中使用的{version}不符合Maven属性解析规则,Maven标准占位符格式为${属性名},缺少$前缀的字符串会被Assembly插件视为普通文本,不会触发对pom.xml值的匹配解析。
  • 不存在无美元符号格式的内置{version}预定义占位符,因此即使属性名正确,缺少$前缀也无法生效。

修复后配置

将路径字段中的{version}替换为带正确前缀的项目版本属性,直接读取pom中定义的项目版本值:

<id>zip</id>
<includeBaseDirectory>true</includeBaseDirectory>

<formats>
    <format>zip</format>
</formats>  
<fileSets>
    <fileSet>
        <directory>${project.basedir}/src/root/config</directory>
        <outputDirectory>${project.version}/config</outputDirectory>
    </fileSet>
    <fileSet>
        <directory>${project.basedir}/common/lib</directory>
        <outputDirectory>${project.version}/bin/JAVA</outputDirectory>
    </fileSet>
</fileSets>

补充说明

  • 优先使用内置属性${project.version}而非自定义${version},该属性会直接读取pom根节点下的<version>字段,无需额外在<properties>中重复定义,也能避免属性名冲突。
  • 3.1.0及以上版本的Maven Assembly插件默认开启路径字段的属性解析,无需额外配置属性处理相关参数即可正常替换值。
  • 如果是将Assembly配置内嵌在pom.xml的插件节点中,或是单独抽取为独立的assembly.xml文件,上述属性语法完全通用,无差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 14:45:02