Maven llama a un script externo en plataformas Linux y Windows
Necesito ejecutar un script externo en las plataformas Linux y MS-Windows.
¿Uso el plugin correcto?exec-maven-plugin
?¿Hay algún plugin más adecuado?¿Qué nombre de archivo debo poner en<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>
Yo uso el mismoMakefile
para ambas plataformas Linux / MS-Windows
Mi guioncompile-jni.bat
:
call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
bash -c "make"
Mi guioncompile-jni.sh
:
#!/bin/sh
make
ACTUALIZAR:Dos colegas han sugerido alternativas:
Usar una variablescript.extension
cambio<executable>./compile-jni${script.extension}</executable>
en elpom.xml
y anexar la variable dentro de la línea de comandomvn compile -Dscript.extention=.bat
o configure las variables de entorno de Visual Studio antes de llamar a 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)
Pero en ambas soluciones, los usuarios de Eclipse pueden estar atascados ... Todavía estoy buscando una solución automática y elegante ...