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 ...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage