maven ruft externe Skripte auf Linux- und Windows-Plattformen auf
Ich muss ein externes Skript auf Linux- und MS-Windows-Plattformen ausführen.
Benutze ich das richtige Pluginexec-maven-plugin
?Gibt es ein passenderes Plugin?Welchen Dateinamen soll ich eingeben?<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>
Ich benutze das gleicheMakefile
für beide Plattformen Linux / MS-Windows
Mein Drehbuchcompile-jni.bat
:
call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
bash -c "make"
Mein Drehbuchcompile-jni.sh
:
#!/bin/sh
make
AKTUALISIEREN:Zwei Kollegen haben Alternativen vorgeschlagen:
Verwenden Sie eine Variablescript.extension
Veränderung<executable>./compile-jni${script.extension}</executable>
in dempom.xml
und hängen Sie die Variable in der Befehlszeile anmvn compile -Dscript.extention=.bat
Oder setzen Sie die Umgebungsvariablen von Visual Studio, bevor Sie maven aufrufen:
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)
Aber bei beiden Lösungen kann es vorkommen, dass Eclipse-Benutzer hängen bleiben ... Ich suche immer noch nach einer automatischen und eleganten Lösung ...