【问题标题】:In Android, compiling with Gradle, how to share code between projects?Android中,使用Gradle编译,项目之间如何共享代码?
【发布时间】:2013-12-03 07:06:28
【问题描述】:

在使用 Gradle 构建两个应用程序时,在两个项目之间共享一些代码(例如 Utils 类)的首选方式是什么?

我可以在不创建额外 jar 文件的情况下执行此操作吗?我只是希望我的代码位于应用程序项目之外,被导入/编译到两个应用程序项目中。或者这根本不可能?

我熟悉使用 jar 或 Android 库项目的方法,但两者似乎都有些笨拙。

【问题讨论】:

  • 您可以将通用代码放在 Gradle 子项目中。

标签: android build gradle


【解决方案1】:

我最喜欢的做法是将其保存在本地 Maven 存储库中。存储库甚至可以存在于您的 SCM 中,因此在工作空间中是相同的。

创建一个 new Android Studio 项目,然后将其设置为您的 build.gradle 配置的 maven 项目:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android-library'
apply plugin: 'maven'

repositories {
    mavenCentral()
}

configurations {
    archives {
        extendsFrom configurations.default
    }
}

group = 'com.mypackage.mylibrary'
version = '1.0.0'

uploadArchives {
    configuration = configurations.archives
    repositories {
        mavenDeployer {
            repository(url: uri("relative/path/to/localrepo"))
            pom.project {
                artifactId 'mylibrary'
                name 'My Library'
                packaging 'aar'
            }
        }
    }
}
android {
    // copy old android config here
}

您需要先部署该库,然后才能使用它。通过使用 uploadArchives 任务 [./gradlew uploadArchives]

来执行此操作

现在你应该可以在任何项目中使用这个库了:

repositories {
    maven { url 'relative/path/to/localrepo' }
}
dependencies {
    compile ('com.mypackage.mylibrary:1.0.0')
}

当您对库进行更改时,您必须使用新版本重新部署(uploadArchives),然后在任何需要新版本的项目中更新依赖项引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 2020-04-20
    相关资源
    最近更新 更多