c/cpp で記述された JNI ライブラリを Java プロジェクトに追加しようとしています。Java プロジェクトは Subsonic と呼ばれ、メディア サーバーです。.spc ファイルのサポートを追加したいので、それを実現するための JNI を書きました。私はmavenをよく理解していません。
これはディレクトリ構造です:
subsonic/
gme/
*.cpp
snes.c -->contains C jni code
subsonic-main/
...
src/main/java/net/sourceforge/subsonic/service/metadata/
GMEMetaDataParser.java -->contains the JNI calls
私の問題は、maven を私と連携させる方法がわからないことです。これは私の現在のpomファイルです:
<project>
<modelVersion>4.0.0</modelVersion>
<artifactId>gme</artifactId>
<name>JNI Libraries for Subsonic</name>
<packaging>dylib</packaging>
<parent>
<groupId>net.sourceforge.subsonic</groupId>
<artifactId>subsonic</artifactId>
<version>5.0.beta1</version>
</parent>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<!-- trigger javah -->
<javahOS>macosx</javahOS>
<compilerProvider>generic-classic</compilerProvider>
<compilerExecutable>gcc</compilerExecutable>
<linkerExecutable>gcc</linkerExecutable>
<sources>
<source>
<directory>./</directory>
<fileNames>
<fileName>snes.c</fileName>
<fileName>Ay_Apu.cpp</fileName>
<fileName>Ay_Cpu.cpp</fileName>
<fileName>Ay_Emu.cpp</fileName>
<fileName>Blip_Buffer.cpp</fileName>
<fileName>Classic_Emu.cpp</fileName>
<fileName>Data_Reader.cpp</fileName>
<fileName>Dual_Resampler.cpp</fileName>
<fileName>Effects_Buffer.cpp</fileName>
<fileName>Fir_Resampler.cpp</fileName>
<fileName>Gb_Apu.cpp</fileName>
<fileName>Gb_Cpu.cpp</fileName>
<fileName>Gb_Oscs.cpp</fileName>
<fileName>Gbs_Emu.cpp</fileName>
<fileName>Gme_File.cpp</fileName>
<fileName>Gym_Emu.cpp</fileName>
<fileName>Hes_Apu.cpp</fileName>
<fileName>Hes_Cpu.cpp</fileName>
<fileName>Hes_Emu.cpp</fileName>
<fileName>Kss_Cpu.cpp</fileName>
<fileName>Kss_Emu.cpp</fileName>
<fileName>Kss_Scc_Apu.cpp</fileName>
<fileName>M3u_Playlist.cpp</fileName>
<fileName>Multi_Buffer.cpp</fileName>
<fileName>Music_Emu.cpp</fileName>
<fileName>Nes_Apu.cpp</fileName>
<fileName>Nes_Cpu.cpp</fileName>
<fileName>Nes_Fme7_Apu.cpp</fileName>
<fileName>Nes_Namco_Apu.cpp</fileName>
<fileName>Nes_Oscs.cpp</fileName>
<fileName>Nes_Vrc6_Apu.cpp</fileName>
<fileName>Nsf_Emu.cpp</fileName>
<fileName>Nsfe_Emu.cpp</fileName>
<fileName>Sap_Apu.cpp</fileName>
<fileName>Sap_Cpu.cpp</fileName>
<fileName>Sap_Emu.cpp</fileName>
<fileName>Sms_Apu.cpp</fileName>
<fileName>Snes_Spc.cpp</fileName>
<fileName>Spc_Cpu.cpp</fileName>
<fileName>Spc_Dsp.cpp</fileName>
<fileName>Spc_Emu.cpp</fileName>
<fileName>Spc_Filter.cpp</fileName>
<fileName>Vgm_Emu.cpp</fileName>
<fileName>Vgm_Emu_Impl.cpp</fileName>
<fileName>Ym2413_Emu.cpp</fileName>
<fileName>Ym2612_Emu.cpp</fileName>
<fileName>gme.cpp</fileName>
</fileNames>
</source>
<!-- additional include path -->
<source>
<directory>/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/include/darwin</directory>
<includes>
<include>*.h</include>
</includes>
<deployable>true</deployable>
</source>
</sources>
</configuration>
</plugin>
</plugins>
</build>
</project>
心の広い人は、私にいくつかの指針を教えてください。私はmavenが嫌いだと思います:(