当前位置: 首页 > 知识库问答 >
问题:

Gradle:如何升级来自插件的可传递依赖版本?

詹夕
2023-03-14

我有一个巨大的java多模块应用程序,它使用gradle来管理构建和依赖关系。在其中一个模块中,假设模块1项目使用gretty插件

  • 模块1/构建。格拉德尔
plugins{
    id 'org.gretty'
}

gretty对ch.qos具有可传递的依赖性。logback:logback classic:1.1.3

我想将logback版本升级到最新版本。为此,我尝试了以下解决方案

dependencies {
    // 1 try
    implementation 'ch.qos.logback:logback-classic:1.2.6'

    // 2nd try
    implementation ('ch.qos.logback:logback-classic:1.2.6') {
        force = true
    }

    // 3rd try

    constraints {
        implementation('ch.qos.logback:logback-classic:1.2.6') {
            because 'some xyz reason'
        }
    }
}

但这些都不会对logback版本产生任何影响。现在需要一些建议吗

共有1个答案

席嘉祯
2023-03-14

到目前为止,您所做的是针对应用程序依赖项,而不是构建依赖项。要更改或向生成本身添加其他依赖项,请使用buildscript块。因此,对于您的情况,要引入更新版本的Logback:

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
        mavenCentral()
    }
    dependencies {
        classpath 'ch.qos.logback:logback-classic:1.2.6'
    }
}

https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:build_script_external_dependencies

然后可以调用buildEnvironment任务来查看生成的依赖项。

 类似资料:
  • 我在Scala项目中使用了官方的Gatling Gradle插件,我发现了一个问题,其中包含了依赖项,如 不包括可传递依赖项。也就是说,我有一个Gatling模拟类,它扩展了中的一个类,而依赖于这个类。但是,当我尝试运行模拟时,会出现如下错误 当我查看Gradle依赖时,我将视为的依赖项。我的IDE(IntelliJ)在点击代码时也能识别它。 我试着在一页文档中搜索这个插件,但是我没有看到任何有用

  • 我正在处理一个多模块的Maven项目,该项目具有模块间依赖关系。例如:项目的一个模块,例如依赖于来自同一项目的另一个模块(例如)。 依赖于并且在中,我添加了Apache Spark项目的测试JAR-、和用于单元测试目的。如您所见,这些Spark模块都是版本2.4.0,它在内部使用。请参阅下面提供的POM: 父级 核心模块 火花模块 现在,当我构建时,当maven shade插件开始使用时,它包括而

  • “DepProject”是一个Maven项目,在该项目的pom文件中,它依赖于另一个工件: 现在,当我对我的项目执行“gradle dependencies”时,它正确地表明我应该通过传递依赖项解析获得solrj依赖项,但它不尊重4.4.0版本声明,相反,我的项目获得了5.5.4版本的依赖项。 这些行在依赖关系报告中出现几次,始终相同。 然后在结果的“gradle dependencies”调用中

  • 我刚刚将我的项目升级到gradle 7,并且遇到了缺失的可传递依赖项。我试着改变我的身材。gradle文件在依赖项中使用“api”,但这并没有修复它。 projectA依赖于projectB,projectB依赖于projectC。 projectA-build。格拉德尔 projectB-构建。格拉德尔 ProjectA编译良好,但有运行时错误-从project ectC获取类的ClassNot

  • 然而,似乎什么也没发生。没有变化,控制台输出没有提到新版本(这就足够了)。 我的如下所示:

  • 关于maven和传递依赖排除有几个问题。然而,我不能让它工作。我的pom中有一些依赖项,它们重新打包了一些库,以减小pom的大小。到目前为止,这是成功的。但是当我运行时,这些可传递的依赖项会被写入。类路径文件。尽管它们被排除在外,如以下摘录所示。 Apache Maven 3.3.3(7994120775791599e205a5524ec3e0dfe41d4a06;2015-04-22T13:57