使用maven插件exec-maven-plugin运行shell脚本

时间:2015-10-30 20:06:33

标签: java bash shell maven exec-maven-plugin

我有一个java Web应用程序项目。我正在使用exec-maven-plugin来执行一个shell脚本,当使用mvn clean isntall构建项目时,该脚本会在目录中创建一个小的txt文件。我已经确认通过编写测试文本运行mvn clean install时正在执行该脚本。但是,该脚本不会创建txt文件。

当脚本通过终端正常运行时,即./script.sh,正确创建了txt文件。

toTxt="hello"
printf $toTxt > testText.txt
echo 'This shows up, but testText is not created.'

有谁知道为什么这是开心的?

2 个答案:

答案 0 :(得分:0)

尝试回显pwd命令以查看应在何处创建文件或添加<workingDirectory>${project.build.outputDirectory}</workingDirectory> 到pom.xml中的配置块 注意:您可以指定${project.build.outputDirectory}以外的其他内容来专门指向正确的位置。并确保您具有写入权限。

答案 1 :(得分:0)

请记住,某些命令不是外部程序,而是shell内置程序。这意味着他们不会启动程序,并且maven-exec-plugin将无法运行它们。 但是 ,您可以运行bash来获得结果,而不是pwd

bash -c "echo $(pwd)"

应该做的伎俩。 Maven正在启动bash,然后运行脚本echo $(pwd),调用bash内置函数pwd并将结果传回(由于回显)。

是的,要解决缺少pwd计划的工作很多,但那是因为真的没有pwd计划,而且#&# 39; bash的内部产品的一部分。

http://www.tldp.org/LDP/abs/html/internal.html列出了bash内部(内置命令)。