maven wywołuje zewnętrzny skrypt na platformach Linux i Windows
Muszę uruchomić zewnętrzny skrypt na platformach Linux i MS-Windows.
Czy używam właściwej wtyczkiexec-maven-plugin
?Czy jest bardziej odpowiednia wtyczka?Jaką nazwę pliku należy umieścić<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>
Używam tego samegoMakefile
dla obu platform Linux / MS-Windows
Mój skryptcompile-jni.bat
:
call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
bash -c "make"
Mój skryptcompile-jni.sh
:
#!/bin/sh
make
AKTUALIZACJA:Dwóch kolegów zaproponowało alternatywy:
Użyj zmiennejscript.extension
zmiana<executable>./compile-jni${script.extension}</executable>
wpom.xml
i dodaj zmienną w linii poleceńmvn compile -Dscript.extention=.bat
lub ustaw zmienne środowiskowe Visual Studio przed wywołaniem 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)
Ale w obu rozwiązaniach użytkownicy Eclipse mogą zostać zablokowani ... Ciągle szukam automatycznego i eleganckiego rozwiązania ...