如何通过Nebula Release Plugin为构建版本添加classifier?
给Nebula Release Plugin配置「vault」分类器的方案
首先明确:Nebula Release Plugin核心负责版本号的递增(Major/Minor/Patch),分类器(classifier)属于构建产物属性或版本预发布标识,需要结合Gradle发布配置或Nebula的版本规则实现,以下是两种可行方案:
方案1:给构建产物添加「vault」分类器
如果仅希望库的构建产物(如jar包)带分类器,不修改版本号本身,可在Gradle脚本中配置发布规则:
plugins { id 'nebula.release' id 'java-library' id 'maven-publish' } // 配置发布产物的分类器 publishing { publications { mavenJava(MavenPublication) { from components.java artifactId = 'your-library-artifact-id' // 给产物添加vault分类器 classifier = 'vault' } } } // 可选:针对特定分支自动启用分类器 release { branchRules = [ ~/feature\/vault/: { version -> version }, ~/.*/: { version -> version } ] }
依赖该版本时需指定分类器:implementation 'your-group-id:your-library-artifact-id:1.2.3:vault'
方案2:生成带「vault」后缀的版本号
如果希望版本号本身带有标识(如1.2.3-vault),可通过Nebula的预发布版本配置实现:
plugins { id 'nebula.release' } release { // 全局设置预发布后缀,或针对分支动态配置 branchRules = [ ~/feature\/vault/: { version -> // 给当前版本添加-vault后缀 "${version}-vault" }, // 其他分支保持正常版本号 ~/.*/: { version -> version } ] }
这种方式会直接生成带后缀的版本号,依赖时直接引用implementation 'your-group-id:your-library-artifact-id:1.2.3-vault'即可,不会干扰使用正式版本的开发者。
注意事项
- 方案1的分类器仅区分产物,版本号不变;方案2直接修改版本号,更直观区分功能分支版本
- 可结合CI/CD流程,在Vault功能分支构建时自动触发对应配置,无需手动修改脚本
内容的提问来源于stack exchange,提问作者Raystorm
相关产品推荐
相关产品推荐

