Gradle无法从本地jar包下载传递依赖项

6

我本地有一个依赖项,但Gradle似乎没有使用位于META-INF/maven/.../pom.xml中找到的传递依赖关系。

Gradle能否从那里获取传递依赖关系?


请发布您的 build.gradle 文件。 - Gabriele Mariotti
build.gradle 对于这个案例并不重要,但是依赖关系定义如下:compileOnly 'com.mobbeel.http:mobbeel-http-client:3.10.0'。 - Óscar
似乎没有考虑到传递依赖关系。你有一些错误吗? - Gabriele Mariotti
2个回答

10
如果您在本地文件夹中托管JAR包,需要遵循Maven库目录的约定并将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
@haltabush 对于我的应用程序,我将springboot作为父项目,我需要添加它吗? - Faraz
如果您的代码库中也有Springboot可用的实例,那么可能不需要。 - haltabush

0
如果有人正在寻找使用Kotlin-DSL完成相同任务的方法,可以尝试使用以下代码:

build.gradle.kts

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

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

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

$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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接