这怎么能在Windows中不起作用?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>deploy-dev-ssh</id>
<phase>install</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>echo</executable>
<arguments>
<argument>hello</argument>
</arguments>
</configuration>
</plugin>
我在运行时得到这个:
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:exec (do-this) on project <my_project_name>: Command execution failed. Cannot run program "echo" (in directory "<my_local_path>"): CreateProcess error=2, The system cannot find the file specified -> [Help 1]
如何回应不在PATH上?
答案 0 :(得分:9)
这里的问题是echo是cmd.exe程序的命令,它不是Unix中的独立进程\应用程序。为了做你想做的事情,你需要使用'echo','/ C'调用cmd作为可执行文件(告诉cmd你传递了一个命令 - 在你的Windows上看到'cmd /?'命令行。)和'hello'作为参数。
像这样:
<configuration>
<executable>cmd</executable>
<arguments>
<argument>/C</argument>
<argument>echo</argument>
<argument>hello</argument>
</arguments>
</configuration>
答案 1 :(得分:3)
您还可以在正在运行的目录中创建 echo.bat 文件,并将内容设置为:
@echo %*
此技术对于同时支持Windows和Linux构建环境特别方便。也许&#34;回声&#34;这不是一个很好的例子,但是你可能遇到在Windows和Linux上都存在相同命令的情况。