在重写CI管道脚本时,我偶然发现
$ mvn $MAVEN_CLI_OPTS clean compile
Unable to parse command line options: Unrecognized option: --no-transfer-progress
当尝试将--no-transfer-progress
添加到默认设置时。这发生在shell executor runner中,当然是由于过时的Maven版本。虽然我已经通过SDKMAN找到了一个解决方案!为了将最新的maven版本安装到这样的runner上,我希望我的CI脚本尽可能通用,即。对于缺少.sdkmanrc
文件的项目管道,并且只是希望依赖该运行程序上的默认maven版本(我无法控制),不会失败。
那么,有没有一种方法可以让maven忽略未识别的选项并继续执行呢?
1条答案
按热度按时间f87krz0w1#
由于到目前为止所有的反馈都表明这是不可能的,我将一个bash脚本集成到CI管道中,根据当前可用的maven版本逐步增强CLI选项:
显然有改进的空间,即通过使版本比较算法DRY,但到目前为止,这对我们来说是一个魅力。
然而,总是热衷于学习,如果有一个更聪明的方法来实现这一点。