从gradle项目上传多个工件

时间:2016-10-12 15:56:13

标签: android android-gradle build.gradle

我有一个AndroidStudio项目,包含一个主模块“app”一个安卓库“baseapp”和另一个安卓库“网络” - 这取决于“baseapp”。我希望编译这两个库,并将它们的工件上传到maven存储库。 “app”是一个消费“baseapp”和“网络”的示例应用程序。

由于maven repo实际上是一个git repo,我使用wagon-git插件和this script描述here

这是项目结构:

enter image description here

主要应用build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"

    compile "com.locassa.android.baseapp:baseapp:$rootProject.artifactVersionName"
    compile "com.locassa.android.baseapp:networking:$rootProject.artifactVersionName"
}

网络的build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile "com.android.support:appcompat-v7:$rootProject.supportLibraryVersion"
    testCompile 'junit:junit:4.12'

    compile "com.squareup.retrofit2:retrofit:$rootProject.retrofitVersion"
    compile "com.squareup.retrofit2:converter-gson:$rootProject.retrofitVersion"
    compile "com.squareup.okhttp3:logging-interceptor:$rootProject.okhttpVersion"

    compile "com.locassa.android.baseapp:baseapp:$rootProject.artifactVersionName"
}

当我启动./gradlew uploadArchives命令时,由于“baseapp”尚未上传,因此编译“网络”工件时构建失败。我原本以为我可以编译并上传“baseapp”,并且只有在编译和上传“网络”之后才会发生,但这种情况并没有发生。我不确定这是因为“网络”是在“baseapp”之前编译的,还是因为gradle会在执行任何内容之前检查所有依赖项。

不幸的是,我对gradle的了解有限,我基于其他SO问题的所有尝试都没有完全解决。

有没有人知道为什么会发生这种情况或者在gradle中设置优先级的方法,以便即使“网络”具有不满意的依赖关系也可以上传“app”,或者可选择强制如何强制“app”上传忽略或禁用“网络”?

我希望这两个工件具有相同的版本,因为它更易于使用和维护,因此我无法使用“网络”来引用以前版本的“app”。

希望它很清楚,但除此之外,我很乐意与更多信息整合。

由于

0 个答案:

没有答案