首页 文章

什么gradle任务从远程存储库中提取依赖项?

提问于
浏览
5

我正在为我的Android项目切换到Gradle . 我已经从Eclipse将项目导入Android Studio并使用Gradle 1.8将其包装起来 .

我的假设是Gradle以Maven的方式处理依赖关系,也就是说如果指定了本地存储库中不存在的依赖关系,它将从远程存储库中提取它 . Android Studio没有引入我的依赖项 . 我试图运行 ./gradlew androidDependencies --debug 但我没有看到任何依赖项的下载,但是它们被确认它们在那里并且没有抛出警告/错误 .

11:11:36.833 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleVersionRepository] Using cached module metadata for module 'com.nostra13.universalimageloader#parent;1.8.6' in 'MavenRepo'
11:11:36.834 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.UserResolverChain] Using module 'com.nostra13.universalimageloader:parent:1.8.6' from repository 'MavenRepo'
11:11:36.855 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder] Visiting configuration com.nostra13.universalimageloader:parent:1.8.6(default).
11:11:36.857 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.resolveengine.DependencyGraphBuilder] Attaching com.nostra13.universalimageloader:parent:1.8.6(default) to its parents.

Gradle会在此位置获取依赖关系并从中创建元数据

/home/wil/.gradle/caches/artifacts-26/filestore/com.nostra13.universalimageloader/parent/1.8.6/pom/41669498c2bec505b61772b083cab341653cb86b

有趣的是,我发现如果我在本地拥有maven依赖项,它会将它作为外部库引入Android Studio,它还会将jar添加到gradle缓存文件库中,它不会为我指定的远程依赖项执行此操作 .

这是我的build.gradle

buildscript {
repositories {
    maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.6.3'
}
}
repositories{
    mavenCentral()
}
apply plugin: 'android'

dependencies {
    compile 'com.nostra13.universalimageloader:parent:1.8.6'
}

android {
compileSdkVersion 19
buildToolsVersion "19"

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 17
}
sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res']
        assets.srcDirs = ['assets']
    }
    instrumentTest.setRoot('tests')
    debug.setRoot('build-types/debug')
    release.setRoot('build-types/release')
}
}

我正在运行Android Studio 0.3.6,Ubuntu 13.04,Gradle 1.8,JDK 6

我应该运行什么gradle命令来从maven存储库中删除远程依赖项?我错过了允许下载依赖项的配置设置吗?

2 回答

  • 3

    一旦任务需要,就会自动下载远程依赖项 . 例如,如果您编译项目的代码,将下载编译依赖项,除非它们已存在于Gradle的依赖项缓存中 . 开箱即用,Gradle没有提供仅仅下载所有依赖项而不对它们做任何事情的任务,但是编写一个很容易 .

  • 2

    通过使用 gradle dependencies 命令行,您可以下拉build.gradle中指定的所有内容

相关问题