我有一个具有多个子模块和子子模块的项目,其中有java和本地语言代码(主要是本地语言)。为了处理这个本机代码,我使用了maven-nar-plugin。现在,我没有在本地存储库中编译本机代码所需的所有includes。有没有办法给maven-nar-plugin提供一个目录,并包含其中的所有内容?
我在模块的pom中使用了<systemIncludePaths>和<includePaths>,但它仍然无法编译。
如果有比我要做的方向更简单的方法,请解释一下。
发布于 2013-06-22 17:54:07
下面的工作仍在进行中,但我认为我在正确的轨道上。我从以下(标准)目录结构开始,希望在其中包含一个git c++项目:
+---src
+---main
+---c++
+---java因为我不想更改原始make项目的目录结构,所以我需要定义定制的源目录和定制的include目录。这是拉取后得到的目录结构(我忽略了不相关的文件结构):
+---src
+---main
+---c++
+---data
+--- ...
+---examples
+--- ...
+---scripts
+--- ...
+---src
+---hunalign
+--- ... (source files)
+---include
+--- ... (header files)
+---utils
+--- ... (helper classes)
+---tools
+--- ...通过以下配置,我编译了项目。
<build>
<plugins>
<plugin>
<artifactId>maven-nar-plugin</artifactId>
<version>2.1-SNAPSHOT</version>
<extensions>true</extensions>
<configuration>
<libraries>
<library>
<type>executable</type>
<run>true</run>
</library>
</libraries>
<!-- Here is the config for the custom source dir and includes -->
<cpp>
<sourceDirectory>
${basedir}/src/main/c++/src/hunalign
</sourceDirectory>
<includes>
<include>${basedir}/src/main/c++/src/include/*.h</include>
</includes>
</cpp>
<libraries>
<library>
<type>executable</type>
<run>true</run>
</library>
</libraries>
</configuration>
</plugin>
</plugins>
</build>编辑:为了让javah正常运行,我必须对它进行符号链接,因为maven总是在错误的地方寻找它:
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/bin/javah /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/jre/bin/javahhttps://stackoverflow.com/questions/15070221
复制相似问题