我想从 maven 的绒球中执行一个 cygwin 脚本.xml



我需要在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

最新更新