使用 Gradle 从 Artifactory 访问依赖项

Accessing Dependency from Artifactory using Gradle

我有一个工件已发布到我的本地 Artifactory 存储库,现在我正尝试将该工件拉入一个项目 gradle。

但是,我不断收到以下错误:

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugCompile'.
> Could not find com.company.app:myapplication:1.0.0.
     Searched in the following locations:
     https://jcenter.bintray.com/com/company/app/...pom
     https://jcenter.bintray.com/com/company/app/...jar

     file:/Users/user/Library/Android/sdk/extras/android/m2repository/com/company/app...pom
     file:/Users/user/Library/Android/sdk/extras/android/m2repository/com/company/app...jar
     file:/Users/user/Library/Android/sdk/extras/google/m2repository/com/company/app...pom
     file:/Users/user/Library/Android/sdk/extras/google/m2repository/com/company/app....jar

此错误表明它甚至没有查看本地工件存储库。以下是我的 build.gradle 个文件


项目级别build.gradle

buildscript {
    repositories {
        jcenter()
        maven {
            url '${artifactory_contextUrl}/libs-release-local'
            credentials {
                username = "${artifactory_user}"
                password = "${artifactory_password}"
            }
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0'
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.0"
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

应用级别build.gradle

allprojects{
    apply plugin: "com.jfrog.artifactory"
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.company.app:myapplication:1.0.0'
}

问题是

  1. maven url 需要在构建脚本之外
  2. mavenurl需要在App级别,而不是Project级别build.gradle

以下是我目前可以使用的 build.gradle 个文件:

项目级别build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

应用级别build.gradle

repositories {
    maven {
        url '${artifactory_contextUrl}/libs-release-local'
        credentials {
            username = "${artifactory_user}"
            password = "${artifactory_password}"
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.company.app:myapplication:1.0.0'
}

注意: 我删除了 jfrog 插件,因为只有在发布到 Artifactory 时才需要它。