将AAR指向自身而不是Maven版本

时间:2017-03-06 16:34:15

标签: java android gradle

我有一系列我在Artifactory上托管的库。一个库最近引入了一个新方法,其中创建了一个新方法。

我的项目设置我的核心项目包含其他几个库,并且有一个配置更改指向我的本地版本,而不是用于开发而不是Artifactory版本。

所以......在库B中调用新方法可以很好地从核心库A中运行。但是从库中的另一个类调用库B中的方法会失败。

它正在尝试从最新版本的缓存加载爆炸的aar。这是停止构建,最终是产品发布。

这是图书馆的build.gradle

apply plugin: 'com.android.library'
apply from: '../../gradle/script/dependencies.gradle'

buildscript {
    apply from: '../../gradle/script/buildscript.gradle'
    repositories {
        myMaven()
    }

    dependencies {
        classpath "com.android.tools.build:gradle:$ext.gradleBuildToolsVersion"
        classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:4.0.0'
    }
}

apply from: "../../gradle/script/buildscript.gradle"
repositories {
    myMaven()
}



def globalConf = rootProject.ext

// Artifactory versions
ext {
    artifactPackageName = "com.foo.library"
    artifactVersion = "5.9.25"
    artifactName = "foo"
    artifactoryRepo = 'android'
}

android {
    compileSdkVersion globalConf.androidTargetSdkVersion
    buildToolsVersion globalConf.androidBuildToolsVersion
    defaultConfig {
        minSdkVersion globalConf.androidMinSdkVersion
        targetSdkVersion globalConf.androidTargetSdkVersion
        versionCode 1
        versionName project.ext.artifactVersion
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile('com.android.support:appcompat-v7:23.1.1') { exclude module: 'support-v4' }

    compile('com.foo.library:core:5.9.25@aar') { transitive = true }
    compile 'com.internal.dependency.one:i-d-o:5.9.15@aar'
    compile 'com.internal.dependency.two:i-d-t:5.9.15@aar'
}

apply from: '../../gradle/script/artifactory.gradle'

我需要建立什么gradle配置才能确保Java类在调用其自己的包中的另一个类/方法时指向该类的本地开发版本,而不是最近来自Maven的AAR?

1 个答案:

答案 0 :(得分:0)

  1. 首先检查是否以正确的版本号发布了正确的人工制品。
  2. 转到主项目并检查依赖项。对版本进行更改以反映正确的工件。
  3. 如果您使用的是Android Studio,则可以使用File - >使缓存无效并重新启动。这应该带来你最新的文物并清理旧文物。
  4. 您可以随时访问app-> build-> intermediates->分解-aar-> 在这里,您将看到aars列表。
  5. 确保每个库指向正确的神器版本。