我需要在 Linux 和 MS-Windows 平台上运行外部脚本。
- 我使用正确的插件
exec-maven-plugin
吗? - 有没有更合适的插件?
我应该输入什么文件名
<executable>....</executable>
?<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <id>compile-jni</id> <phase>compile</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable>./compile-jni</executable> <workingDirectory>${basedir}/src/main/cpp</workingDirectory> </configuration> </execution> </executions> </plugin>
我Makefile
对两个平台 Linux/MS-Windows 都使用相同的
我的脚本compile-jni.bat
:
call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
bash -c "make"
我的脚本compile-jni.sh
:
#!/bin/sh
make
更新:
两位同事提出了替代方案:
在命令行中使用变量
script.extension
更改 并附加变量<executable>./compile-jni${script.extension}</executable>
pom.xml
mvn compile -Dscript.extention=.bat
或在调用 maven 之前设置 Visual Studio 环境变量:
call "C:\%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 mvn compile #(the same script 'bash -c "make"' works on both platforms)
但是在这两种解决方案上,Eclipse 用户可能会被卡住......我仍在寻找一个自动和优雅的解决方案......