简体   繁体   English

Android 多模块库

[英]Android multi module libraries

How can I build all Android modules in project and expose those to maven repository without creating huge gradle script?如何在项目中构建所有 Android 模块并将它们公开到 maven 存储库而不创建巨大的 gradle 脚本? There are no clear instructions about modularity in Android projects with artefacts generated by gradle maven plugin. Android 项目中没有关于模块化的明确说明,其中包含 gradle maven 插件生成的工件。 It would be awesome to use built in task.使用内置任务会很棒。

In few steps:分几步:

  1. Create a common gradle file in root directory, such as config.gradle and put this fragment:在根目录下创建一个普通的 gradle 文件,比如config.gradle并放入这个片段:
ext.packageName = "com.abc.example"

ext.mavenPublisher = {
    task androidSourcesJar(type: Jar) {
        archiveClassifier.set('sources')
        from android.sourceSets.main.java.srcDirs
    }

    afterEvaluate {
        publishing {
            publications {
                maven(MavenPublication) {
                    from components.release
                    artifact androidSourcesJar
                    groupId = packageName
                    artifactId = findProperty('moduleName')
                    version = getVersion()
                }
            }
        }
    }
}
  1. In root gradle.properties add property version=1.0.0 .在根gradle.properties添加属性version=1.0.0

  2. In library module build.gradle add:在库模块build.gradle添加:

apply from: "${rootProject.projectDir}/config.gradle"

with mavenPublisher
  1. Also in library module add gradle.properties with:同样在库模块中添加gradle.properties
moduleName=name
  1. Type in console from root project directory: gradle clean build publishToMavenLocal .从项目根目录输入控制台: gradle clean build publishToMavenLocal

In section from components.release you can change release type to debug or another one build type.from components.release部分,您可以将发布类型更改为debug或另一种构建类型。 Also you can add version to each module if you want, but probably some release plugin configuration is required.如果需要,您也可以为每个模块添加版本,但可能需要一些发布插件配置。

Working example at this link .此链接的工作示例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM