在使用 Gradle 构建两个应用程序时,在两个项目之间共享一些代码(例如 Utils 类)的首选方法是什么?
我可以在不创建额外的 jar 文件的情况下执行此操作吗?我只希望我的代码位于应用程序项目之外,导入/编译到两个应用程序项目中。还是这根本不可能?
我熟悉使用 jar 或 Android 库项目的方法,但两者似乎都有些笨拙。
最佳答案
我最喜欢的做法是将其保存在本地 Maven 存储库中。存储库甚至可以存在于您的 SCM 中,因此它在所有工作区中都是相同的。
创建一个新 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),然后在任何需要新版本的项目中更新依赖项引用。
关于android - 在Android中,使用Gradle编译,如何在项目之间共享代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20338016/