我最近决定将我的android项目从ant切换到gradle构建系统。手动管理我们团队成员之间的库和模块依赖关系很快就变成了太多的工作。
一切都顺利开始了。我创建了一个新的gradle项目,移动了我的资源和资源,并且已经摆脱了我们/libs
文件夹中所有主要的第三方库.jars,因此我可以使用新的gradle maven中心依赖。没问题。
现在我正在尝试找到一种很好的方法来设置一些不受maven中心不太流行的模块的依赖关系。我使用了一些我已经依赖的小型android模块(例如表单验证器,辅助工具模块等)。问题是这些模块不仅仅是.jars,而且还有资源。据我所知,我不能将这些模块放在我的/libs
文件夹中,并让gradle设置依赖项。我已经阅读了.aar文件了一下,我正在寻找一些关于它们是否是我的问题的答案的建议,或者我忽略了一些简单的事情。下面是我当前的目录结构(带有一些注释)和我的gradle.build
。
/<project-directory>
/build
/gradle
/<application-directory>
/build
/src
/libs <-- where I would expect to put non-maven modules
/Form-Validator <-- MyApplication depends on this module
/build.gradle
/src
/java
/res
... etc etc etc
/Other-Module
/build.gradle (seen below)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.14.2'
}
}
apply plugin: 'com.android.application'
repositories {
jcenter()
mavenCentral()
flatDir {
dirs 'libs'
}
}
android {
compileSdkVersion 21
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.#####.############"
minSdkVersion 16
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.3'
compile 'com.google.code.gson:gson:2.3.1'
compile 'com.squareup.retrofit:retrofit:1.8.0'
compile 'com.squareup.okio:okio:1.1.0'
compile 'com.squareup.okhttp:okhttp:2.2.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'
compile 'com.github.bumptech.glide:glide:3.4.0'
}
答案 0 :(得分:0)
您可以将本地maven存储库添加到build.gradle:
repositories {
jcenter()
mavenCentral()
mavenLocal()
flatDir {
dirs 'libs'
}
}
本地存储库的位置取决于操作系统。在Linux中它是 $ HOME / .m2目录/存储库