对于Android项目,我如何让maven拾取lib目录中的所有库,包括.so文件?

时间:2013-06-12 00:19:52

标签: android maven maven-3

我有使用Eclipse IDE编译和链接的项目。该项目使用一些外部jar文件,并使用一些JNI(.so)库。

它们都位于我项目的libs /目录中。我的pom.xml文件应该如何,以便libs /文件夹中的所有jar文件和共享对象都包含在APK中。我的libs目录看起来像这样:

libs/
├── mydevicelib.jar
├── armeabi
│   ├── libdevice.so
├── armeabi-v7a
│   ├── libdevice.so
│   ├── libcmiris.so
├── libcommon.jar

我正在使用maven 3.0.5

1 个答案:

答案 0 :(得分:1)

这些罐子应作为依赖关系包含在maven POM中。

不应将它们包含在本地lib文件夹中,而应将它们部署到maven存储库。

对于通过maven中央存储库可用的任何工件,只需直接从那里包含依赖项。

对于自定义工件,执行此操作的最佳方法是设置您自己的maven存储库(http://archiva.apache.org/index.cgihttp://www.sonatype.org/nexus/)并将工件部署到该存储库。然后,您可以将它们作为依赖项包含在pom中。

或者,如果这对您的项目来说太过分了,您可以设置本地项目存储库并将工件部署到该项目。

我实际上并没有使用JNI库完成此操作,尽管此链接看起来可能包含在那里执行类似操作的有用信息:http://code.google.com/p/maven-android-plugin/wiki/NativeLibsAsDependencies。看起来你只需要添加

<type>so</type>

依赖的元素。