【发布时间】:2018-08-12 22:54:28
【问题描述】:
我正在使用 Unix 终端来构建 Java 项目。我创建了几个 Shell Script(.sh) 文件来执行 Jar 文件。所以那些 sh 文件包含 jar 文件的版本名称。
因此,我遇到了一个新要求,即当我通过执行 maven 命令升级我的 POM 版本时,同时我想据此更改 sh 文件的内容。
举个例子
内容 A.sh
#!/bin/bash
"-jar X.3.16.0.jar"
当我像
这样执行命令时mvn versions:set -DnewVersion= X.3.17.0-SNAPSHOT
我想把A.sh的内容改成这样
#!/bin/bash
"-jar X.3.17.0-SNAPSHOT.jar"
我曾经手动进行此更改。但从长远来看,这不是一个好主意。所以我想通过两种方法来解决这个问题。
方法一
实现一种机制,监听上述maven命令,在sh文件中查找指定文本并替换。
方法二
使用包含的 maven 命令实现一个新的 Shell 脚本,并查找并替换 A.sh 文件中的文本。这个新实现的 sh 文件将有一个参数来接受新版本。
问题:
解决这个问题的最佳方法是什么?如果以上都不行,请帮帮我。
谢谢!
【问题讨论】:
-
方法2应该很容易实现
-
@anubhava 我也一样。但是 Bash 中是否有任何可用的功能来实现方法 1 方法。
-
没有 bash 不是完整的语言。您无法监听 maven 中的某些更改