【发布时间】:2015-08-11 14:56:40
【问题描述】:
我创建了一个 maven 项目,我正在尝试运行一个外部脚本。 在这个外部脚本中,我使用 read 命令提出问题并得到答案。
如果我使用 exec-maven-plugin 执行 sudo mvn 包,它会起作用
但是,但是,但是:
- 如果我执行 sudo mvn 包,我的脚本不会在读取命令处停止。
- 如果我使用 exec-maven-plugin 执行 sudo mvn release:prepare,我的脚本不会在读取命令处停止。
- 如果我使用 maven-antrun-plugin 执行 sudo mvn release:prepare,我的脚本不会在读取命令处停止。
显然,我需要发布 :)
我尝试将脚本的第一行(#/usr/bin/bash、sh、...)更改为读取命令的其他语法...
有人有办法帮我吗???
这里是我的 pom.xml 的相关部分
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>initialisation</id>
<phase>initialize</phase>
<configuration>
<tasks>
<exec dir="${project.basedir}" executable="${project.basedir}/livraison/outils/0_init_livraison.ksh" failonerror="true">
<arg line="${project.name} ${project.version} ${ancienneVersion}" />
</exec>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
这里是我的 0_init_livraison.ksh 的相关部分
#!/bin/ksh
echo -e "| EXECUTION DU SCIPT generation_livrable.ksh \n"
echo "SHELL : $SHELL"
boucle="boucler"
while [ $boucle -eq "boucler" ]
do
echo -ne " Souhaitez-vous forcer la procedure (oui/non)? "
read rep1
case "$rep1" in
o|O|y|Y|oui|Oui|OUI|yes|Yes|YES)
echo ""
break
;;
n|N|non|Non|NON|no|No|NO)
echo -e " Abandon de la procedure..."
boucle=""
exit 1
;;
*)
echo -e " Reponse incomprehensible.\c"
esac
done
当我执行 sudo mvn 包时控制台的最后几行(然后,什么也没有发生。由于无限循环,它似乎被阻塞了)
[INFO] --- maven-antrun-plugin:1.8:run (initialisation) @ MyProject---
[WARNING] Parameter tasks is deprecated, use target instead
[INFO] Executing tasks
main:
[exec] | EXECUTION DU SCIPT generation_livrable.ksh
[exec]
[exec] SHELL : /bin/bash
感谢阅读:)
编辑:
我尝试将属性与 maven-antrun-plugin 一起使用。 但我也有类似的问题:antrun input task doesn't work during mvn release:prepare operation
【问题讨论】:
-
你的脚本中变量
$boucle在哪里定义? -
我在复制/粘贴时想念它。我编辑了帖子
-
我建议您通过
inputAnt 任务读取用户输入。请参阅this question 了解更多信息。 -
我尝试使用 任务。出现类似问题:在发布准备操作期间输入任务似乎被阻止(我编辑了我的帖子)
标签: maven input release maven-antrun-plugin external-script