使用CMASE和Maven和JAR捆绑构建C++和java代码
我有使用CMADE构建的遗留C++代码。它生成一个.so
文件。我需要在爪哇中包装这个代码,并构建一个包含{java代码和C++的部署^ ^ < CD2}}。p>
用CMake构造C++代码的步骤很简单:
cd /to/pkg/dir
cmake .
make
.so
文件是在build/
目录下生成的。如果我将整个项目转换为maven,我将不得不修改目录结构(这里有一篇博客文章解释了如何工作:http://blog.bigpixel.ro/2012/07/building-cc-applications-with-maven/)。然而,我不想那样做。是否有一个选项可以从maven调用上面显示的前两行来构建.so
文件,然后将其包含在最终的jar
中
# 1 楼答案
在ApacheHadoop中,构建过程与您描述的类似。 在编译阶段,我们使用Apache Maven AntRun Plugin对
cmake
进行外部调用,然后对CMake生成的构建输出调用make
,以编译并链接代码库的C部分。然后,这个输出会反馈到我们的最终构建工件中。在我们的例子中,这些构建工件是tarball,而不是直接绑定到jar文件中,但您可以通过控制Apache Maven JAR Plugin的配置来完成。具体来说,您可能需要覆盖内容include/exclude settings如果你想把它作为一个起点,Hadoop构建的相关部分可以在这里看到:
https://github.com/apache/hadoop/blob/release-2.7.3-RC2/hadoop-common-project/hadoop-common/pom.xml#L598-L615