Мне нужно запустить внешний скрипт как на платформах 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
или установите переменные среды Visual Studio перед вызовом maven:
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 могут застрять... Я все еще ищу автоматическое и элегантное решение...