maven chama script externo em plataformas Linux e Windows
Eu preciso executar um script externo em plataformas Linux e MS-Windows.
Eu uso o plugin correto?exec-maven-plugin
?Existe um plugin mais adequado?Que nome de arquivo devo colocar em<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>
Eu uso o mesmoMakefile
para ambas as plataformas Linux / MS-Windows
Meu scriptcompile-jni.bat
:
call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
bash -c "make"
Meu scriptcompile-jni.sh
:
#!/bin/sh
make
ATUALIZAR:Dois colegas sugeriram alternativas:
Use uma variávelscript.extension
mudança<executable>./compile-jni${script.extension}</executable>
nopom.xml
e acrescente a variável dentro da linha de comandomvn compile -Dscript.extention=.bat
ou defina as variáveis de ambiente do Visual Studio antes de chamar 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)
Mas em ambas as soluções, os usuários do Eclipse podem estar presos ... Eu ainda estou procurando por uma solução automática e elegante ...