我需要在cygwin下执行shell脚本,因为我在Windows下。shell被执行,但是命令不能识别…
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>openOCD</id>
<phase>validate</phase>
<configuration combine.self="override">
<tasks>
<exec
executable="C:/cygwin/bin/sh.exe"
failonerror="true">
<arg line="${project.basedir}/make.sh" />
</exec>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
make.sh目前看起来并不复杂:
#!/bin/sh
export PATH=C:cygwinbin:$PATH
export BLA=C:blabla
cd $BLA
mkdir testMaven
maven,通过Eclipse使用命令Run As…Maven Install:
[INFO] Executing tasks
main:
[exec] C:bla
[exec] C:UserstrucTestSWMavensousKeplerpouetbla/make.sh: line 6: mkdir: command not found
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
你知道吗?谢谢:)
C:cygwinbinbash make.sh
将运行linux命令,您可以使用它来运行shell脚本文件。此外,任务标记(<task>
)现在已弃用,您应该使用目标(<target>
)代替。理想情况下,下面的代码应该工作。您可以在build.xml中添加<target>
和</target>
之间的任何内容(这是ANT使用的)。
<target>
<exec executable="C:cygwinbinbash">
<arg value="${project.basedir}/make.sh"/>
</target>
确保C:cygwinbinbash make.sh
工作正常。
我知道这是晚了(1年后你发布),但我有同样的问题,并决定张贴如何解决它的快速文章。
简而言之:1. 如有必要,为您的开发环境创建一个概要文件2. 使用cmd作为可执行文件,并提供/C和脚本作为参数。
如果你想要,这里是文章:https://medium.com/@jimmysthoughts/happily-coexisting-building-with-exex -maven- plugy-on-os -x-and cygwin-d9fb0c4a02cc