Mat*_*lfe 6 android maven android-library android-maven-plugin
我的android应用程序依赖于来自第三方的android库项目.我正在将我的构建环境切换到maven并且跟随样本已经相当顺利,但最后一步是这个.我不明白我真正需要做什么.我在这里阅读了apklib页面.我从来没有看过一篇关于你实际做得比这篇文章更好的文章.它包含1个你如何引用apklib的片段,但没有关于你如何实际生成它的信息?
此外,我的项目结构如下所示
/projectroot/app (main application android project source code)
/projectroot/shared/lib1
/projectroot/shared/lib2 (3rd party lib i don't want to create pom.xml for)
Run Code Online (Sandbox Code Playgroud)
我有projectroot/pom.xml和模块部分,如下所示:
<modules>
<module>shared/lib1</module>
<module>shared/lib2</module>
<module>app</module>
</modules>
Run Code Online (Sandbox Code Playgroud)
这是对的吗?在所有模块示例中,我看到它们引用了直接子项的文件夹,而我的是嵌套的.
我正在寻找的主要内容是如何使lib2成为一个apklib来引用app/pom.xml.
您引用的链接中提到了:
与非 Maven Android 库项目兼容!
生成的 .apklib 文件将具有标准 Android/Eclipse 库项目的布局。这意味着无论您的 Maven 布局如何,.apklib 文件内的布局都将是源代码位于“src/”而不是“src/main/java/”中,但在 Android/Maven 应用程序中使用时仍然可以正确解释项目。这是为了与非 Maven 开发人员的库项目兼容,这对于发展 Android 开发人员社区非常重要。
使用其他非 Maven 开发人员的库
这也意味着我们可以获取任何外部 Android 库项目 zip 文件(来自非 Maven 开发人员)并对其执行 mvn install:install-file ... ,然后开始将其用作依赖项。
与非 Maven 开发人员共享您的 .apklib
要与非 Maven 开发人员共享您的 .apklib 文件,如果您将其重命名为 .zip,他们可能会感觉更舒服。然后他们可以简单地将其解压到一个目录中并从那里使用它。
如果它是 Maven 化的 Android 库项目,只需运行即可mvn clean install创建 apklib 并将其安装到本地 Maven 存储库中。
如果是常规的 Android 库项目,只需压缩项目文件夹(最好删除所有不必要的 IDE 生成文件),将 my-lib.zip 重命名为 my-lib.apklib,然后运行mvn install:install-file将 my-lib.apklib 安装到本地Maven 存储库。
请注意,在您的多模块 Maven 项目中,如果子模块 lib2 未进行 mavenized,则在运行 maven build 时可能会出现一些配置错误,毕竟它被称为多模块 Maven 项目,因此包含非子模块没有多大意义。 -mavenized子项目。如果 lib2 尚未 mavenized,请将其作为 mutli-module maven 项目的一部分进行 mavenize,或者将其从 mutli-module maven 项目中删除并单独维护(通过 apklib 进行命令行构建,通过源代码进行 IDE 开发)。
另请注意,Maven 和 Eclipse 中的项目构建完全不同,如果您要创建/将项目导入到 IDE 中,则无论如何都需要库项目源。如果 lib2 作为多模块项目的一部分进行 mavenized,则在导入父项目时会自动导入和设置它,否则,您可能需要手动导入和设置独立项目。查看此答案和此答案以获取更多详细信息。
| 归档时间: |
|
| 查看次数: |
2662 次 |
| 最近记录: |