通过Maven运行的Bash脚本无法正确提示输入

时间:2018-11-22 13:30:39

标签: bash git maven maven-plugin git-bash

我有一个bash脚本,其中从一个私人服务器克隆了总共5个存储库。我不希望用户一次又一次输入他的凭据,因此我提示他们一次然后再使用它们。

这是我的凭据提示代码

read -p "Enter Username: " username 
echo -n "Enter Password: "
read -s password

但是,通过maven运行这段代码时,它不显示诸如Enter Username之类的提示消息,甚至不接受-s silent input标志。 如果在没有Maven的情况下运行,则此脚本可以正常运行。

问题在于,如果我在没有任何标志或字符串提示的情况下使用read命令,则该命令运行良好,这使我认为maven可能无法识别或接受这些标志。

还有其他人遇到吗? 我也尝试过在Maven中使用interactive模式,结果相同。

1 个答案:

答案 0 :(得分:1)

仅在构建工具内部不使用任何交互性。应该注入所有值,并将其提供给构建。提示用户输入的不是构建工具。在Maven中,您可以使用Java系统属性或环境变量:

pom.xml

<user>${sysprop.user}</user>
<password>${env.PASSWORD}</user>

重击

export PASSWORD=s3cr3t mvn task -Dsysprop.user=root

直接回答您的问题:确保运行bash脚本(外部进程)的位置链接了该外部进程与Maven的JVM进程的输入和输出流。更多信息herehere