gpt4 book ai didi

java - Gradle 依赖管理

转载 作者:行者123 更新时间:2023-12-01 08:51:31 25 4
gpt4 key购买 nike

我正在构建一个 jar 文件,该文件在编译时依赖于 3 个 logback 工件(log-back-code、log-back-classic、logback-extensions)

这些都是在compile范围内声明的。

我的 jar 已构建,但是当我尝试在不同的项目中使用它时,我发现我需要再次指定 3 个 logback 依赖项,否则找不到类。我希望通过声明对 jar 的依赖来满足这些依赖关系。

我是 gradle 新手,并且对现有脚本只有粗略的了解。

编辑 - 添加了依赖项配置的一些详细信息

在构建jar文件的项目中,依赖关系声明如下


编译组:'ch.qos.logback',名称:'logback-classic',版本:'1.2.1'
编译组:'ch.qos.logback',名称:'logback-core',版本:'1.2.1'
编译组:'org.logback-extensions',名称:'logback-ext-spring',版本:'0.1.4'

我生成的 jar 文件在“其他”项目依赖项中声明为编译组:'mygroup',名称:'mylogback',版本:'1.0.0-SNAPSHOT'

此依赖项是从我的本地 Maven 存储库中提取的,而 logback 依赖项来自 nexus 存储库。

进一步编辑另一个项目的依赖关系树有这个,这似乎支持我的观点,即该项目没有带来它的依赖关系......

> |    +--- commons-io:commons-io:2.5 |    \---
> commons-collections:commons-collections:3.2.2
> +--- mygroup:mylogback:1.0.0-SNAPSHOT
> +--- ch.qos.logback:logback-classic:1.2.1 | +--- ch.qos.logback:logback-core:1.2.1 | \--- org.slf4j:slf4j-api:1.7.22
> +--- ch.qos.logback:logback-core:1.2.1
> +--- org.logback-extensions:logback-ext-spring:0.1.4 | \--- ch.qos.logback:logback-classic:1.1.1 -> 1.2.1 (*)

分辨率

回答我自己的问题,问题是由于

  • 我的构建脚本中缺少 maven-publish 插件
  • 格式错误的发布任务,发布了artefact:jar。将其从 Components.java 更改为 就成功了

最佳答案

我感觉你的问题出在你的工件的部署上,因为它编译正常。

确保您的部署/上传定义与目标工件存储库的格式相同(在您的情况下是本地 maven,对吧?)。您可以通过在目标文件夹中查找 pom 文件(或 ivy 文件,具体取决于您的定义)来检查这一点,并检查它是否包含格式正确的详细信息。

你的定义是这样的吗? :

apply plugin: 'maven'

uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://localhost/tmp/myRepo/")
}
}
}

查看更多详细信息The Gradle documentation on maven plugin

有关发布的更多信息,请参阅 Gradle documentation on publishing有关依赖解析和一般模式的更多信息可以在 Gradle documentation on dependency management 中找到。

关于java - Gradle 依赖管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42371343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com