【问题标题】:Gradle doesn't download transitive dependencies from local jarGradle 不会从本地 jar 下载传递依赖项
【发布时间】:2018-04-24 09:17:47
【问题描述】:

我在本地有一个依赖项,但 Gradle 似乎没有采用位于 META-INF/maven/.../pom.xml

中的 pom 中的传递依赖项

Gradle 可以从那里获取传递依赖吗?

【问题讨论】:

  • 发布你的 build.gradle
  • build.gradle对于这种情况并不重要,但是依赖定义如下:compileOnly 'com.mobbeel.http:mobbeel-http-client:3.10.0'
  • "似乎没有采取传递依赖..".你有什么错误吗?

标签: gradle android-gradle-plugin


【解决方案1】:

如果您将 jar 托管在本地文件夹中,则需要遵守 Maven repository directory conventions 并将 pom 存储在 jar 旁边。 gradle 和 maven 都不会读取压缩在 jar 的 META-INF 目录中的 pom.xml

例如:

$projectDir/local-repo/com/foo/bar/1.0/bar-1.0.jar
$projectDir/local-repo/com/foo/bar/1.0/bar-1.0.pom

build.gradle

repositories {
    maven {
        url = file('local-repo')
    }
}
dependencies {
    compile 'com.foo:bar:1.0'
}

【讨论】:

  • 附带说明,如果您的工件有父级,那么您也需要父级(至少我的情况是这样)
  • @haltabush 对于我的应用程序,我有 springboot 作为父级,我是否也需要添加它?
  • 如果您的存储库也有一个 Springboot 可用的实例,则可能不会。
【解决方案2】:

如果有人正在寻找 Kotlin-DSL 的方式来做同样的事情,你可以使用这个:

build.gradle.kts

repositories {
    maven {
        setUrl("local-repo")
    }
}

dependencies {
    implementation(group="com.foo", name="bar", version="1.0")
} 

同时保持与提到的 here 相同的目录结构:

$projectDir/local-repo/com/foo/bar/1.0/bar-1.0.jar
$projectDir/local-repo/com/foo/bar/1.0/bar-1.0.pom

发件人:https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:declaring_custom_repository

【讨论】:

    猜你喜欢
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    相关资源
    最近更新 更多