maven ruft externes Skript auf Linux- und Windows-Plattformen auf

Brauche ich, um ein externes Skript auf Linux und MS-Windows-Plattformen.

  1. Verwende ich das richtige plugin exec-maven-plugin?
  2. Ist es, eine passende plugin?
  3. Welchem Dateinamen soll ich in <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 den gleichen Makefile für beide Plattformen Linux/MS-Windows

Mein Skript compile-jni.bat:

call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
bash -c "make" 

Mein Skript compile-jni.sh:

#!/bin/sh
make

UPDATE:

Beiden Kollegen haben vorgeschlagen, alternativen:

  1. Verwenden Sie eine variable script.extension
    ändern <executable>./compile-jni${script.extension}</executable> im pom.xml
    und fügen Sie die variable in der Befehlszeile mvn compile -Dscript.extention=.bat

  2. oder legen Sie die Visual Studio-Umgebung Variablen werden vor dem Aufruf von 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)

Aber auf beiden Lösungen, Eclipse-Anwender können stucked... ich bin noch auf der Suche für eine automatische und elegante Lösung...

InformationsquelleAutor der Frage olibre | 2013-02-11

Schreibe einen Kommentar