我有许多模块的Ant项目。
我正在尝试将一些模块合并为更大的模块,并减少其数量。

我可以作为独立应用程序运行android manifest merger并合并指定为参数的 list 吗?

例如我有模块:
A B C D E

我需要 [A] [B] 成为 [AB] 模块和 [C] [D] [E] 成为

我需要这个,因为我正在编写Python脚本,它将帮助迁移到Gradle。脚本将扫描目录,并使用所有文件,复制的类和资源创建新项目。我希望它具有普遍性。

最佳答案

好的,我想回答我自己的问题。
manifest-merger是放置在java中的ANDROID_HOME/tools/lib/manifest-merger.jar

要将jar用作独立应用程序,我从google platform tools存储库克隆了项目:git clone --depth=1 https://android.googlesource.com/platform/tools/base
list 合并源代码位于base/build-system/manifest-merger

您也可以在grepcode上找到代码。

我将代码提取到maven项目中,解决了所有外部依赖关系,并创建了可以克隆并用作独立应用程序的项目:

https://github.com/Bresiu/android-manifest-merger

用法:

  • git clone [email protected]:Bresiu/android-manifest-merger.git
  • mvn install
  • java -jar target/manifest-merger-jar-with-dependencies.jar --main mainAndroidManifest.xml--log [VERBOSE, INFO, WARNING, ERROR]--libs [path separated list of lib's manifests]--overlays [path separated list of overlay's manifests]--property [PACKAGE | VERSION_CODE | VERSION_NAME | MIN_SDK_VERSION | TARGET_SDK_VERSION | MAX_SDK_VERSION=value]--placeholder [name=value]--out [path of the output file]
  • 我已如下使用此库:
  • java -jar target/manifest-merger-jar-with-dependencies.jar --main <path_to_main_manifest> --libs <path_to_libs_manifests_divided by ':'> --out <output_manifest> --log WARNING

    10-05 18:03