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