我正在尝试让我的 Maven 项目在 Windows 7 和 ubuntu 13.04 上运行。在 pom.xml 文件中,我使用 maven-antrun-plugin 调用 我在 linux 和 windows 机器上安装的 scons。在这两个操作系统上,我已经验证我可以scons
从 shell/cmd 运行,所以它在 PATH 上。pom 看起来像这样:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>run-scons</id>
<phase>generate-resources</phase>
<configuration>
<target name="run-scons">
<exec executable="scons" dir="${basedir}/../../../" failonerror="true">
<arg value="-j4" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
但是当我在 windows7 上构建时,我得到:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (run-scons) on project my-project: An Ant BuildExcept
ion has occured: Execute failed: java.io.IOException: Cannot run program "scons" (in directory "C:\Users\u\samples"): CreateProcess error=2,
The system cannot find the file specified
[ERROR] around Ant part ...<exec dir="C:\Users\u\samples...." executable="scons" failonerror="true">
如果我打开一个 cmd 并从那里运行它,我会得到:
C:\Users\u\samples\>scons
scons: Reading SConscript files ...
Using configuration: scons/win32mscdbg.py
为什么我不能scons
从 antrun 插件调用?如果我在 Windows 上指定 scons 的完整路径,它可以工作(例如 C:\Python26\Scripts\scons.bat),但这是不行的,因为开发人员只需要在他们的路径中有 scons,但可以决定位置他们自己。