Linux と MS-Windows の両方のプラットフォームで外部スクリプトを実行する必要があります。
- 適切なプラグインを使用しています
exec-maven-plugin
か? - もっと適切なプラグインはありますか?
どのファイル名を入れればよい
<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>
Makefile
Linux/MS-Windows の両方のプラットフォームで同じものを使用します
私のスクリプトcompile-jni.bat
:
call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
bash -c "make"
私のスクリプトcompile-jni.sh
:
#!/bin/sh
make
アップデート:
2 人の同僚が代替案を提案しています。
で変数の
script.extension
変更<executable>./compile-jni${script.extension}</executable>
を使用pom.xml
し、コマンド ライン内で変数を追加します。mvn compile -Dscript.extention=.bat
または、maven を呼び出す前に Visual Studio 環境変数を設定します。
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)
しかし、両方のソリューションで、Eclipse ユーザーは立ち往生する可能性があります...私はまだ自動でエレガントなソリューションを探しています...