我有一个执行shell脚本的pom.xml文件,shell脚本有提示符
“输入'YES'以使此脚本继续:”
如何告诉maven 1)解析提示,2)在看到提示时输入YES?
或者至少,回答上面的第二个问题?
感谢。
答案 0 :(得分:0)
我有类似的问题。我的一个插件旨在向用户显示一些信息,并且只有在确认后才能继续。当我不得不在CI构建服务器上使用它时,我最终得到了这个:
回声'y'| mvn release:branch ...
我假设您可以采用这种方法(如果它适用于您),或者在执行shell脚本之前使用gmaven
插件执行Groovy代码,该脚本会将所需的字符串写入系统输入。< / p>
答案 1 :(得分:0)
您在非交互模式下使用交互式脚本。该脚本应该有一个参数(即--non-interactive,或-y / -n等),它会禁用提示并强制回答。
答案 2 :(得分:0)
安装脚本在pom.xml中以yes | ./script
运行
答案 3 :(得分:0)
我最终使用https://bitbucket.org/atlassian/bash-maven-plugin并在我的pom.xml文件
中使用了这个 <plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>bash-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<executions>
<execution>
<id>execute-shell</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<script>./build_dm.sh --accept-warning</script>
</configuration>
</execution>
</executions>
</plugin>
答案 4 :(得分:0)
你可以使用Expect,编写一个包装脚本,然后调用交互式脚本。
要在Ubuntu上安装它:
sudo apt-get install expect
此脚本应该有效:
#!/usr/bin/expect
spawn ./test.sh
expect "Enter 'YES' to have this script continue:"
send "YES\r"
interact