相关疑难解决方法(0)

如何将Maven项目版本发送到bash命令行

之前我发布了一个关于如何从命令行更改Maven项目版本的问题,这引出了一个新问题.

以前我能够获得版本号,因为版本存储为易于grep并从命令行解析的属性(bash).现在pom.xml元素已用于此,它不再是唯一的,因为所有依赖项和其他一些也使用它.我认为没有办法使用bash脚本获取当前版本号,而无需外部工具来解析xml或一些非常上下文的sed命令.

我认为最干净的解决方案是让Maven分发这个版本信息.我正在考虑编写一个自定义maven插件来检索不同的属性,但我想我先问这里.

那么,有没有简单的方法来获得${project.version}命令行的价值?提前致谢.

感谢您的帮助.我不得不cd手动到目录,但这可以很容易地完成.在我的bash脚本中我有

version=`cd $project_loc && mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | sed -n -e '/^\[.*\]/ !{ /^[0-9]/ { p; q } }'`
Run Code Online (Sandbox Code Playgroud)

这给了我当前版本,然后我可以推进.Grepping可能更简单,但我认为我想尽可能健壮,所以我对以数字开头的第一行感到满意,并尝试将其作为版本号处理.

# Advances the last number of the given version string by one.
function advance_version () {
    local v=$1
    # Get the last number. First remove any suffixes (such as '-SNAPSHOT').
    local cleaned=`echo $v | sed -e 's/[^0-9][^0-9]*$//'`
    local last_num=`echo $cleaned | sed -e 's/[0-9]*\.//g'`
    local next_num=$(($last_num+1))
    # …
Run Code Online (Sandbox Code Playgroud)

command-line maven-2

176
推荐指数
16
解决办法
10万
查看次数

标签 统计

command-line ×1

maven-2 ×1