从Grails中删除旧的log4j依赖项

rdrgkggo  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(177)

在Grails 2.4项目中更新log4j时遇到一些问题(顺便说一句,我认为我还没有完成)
Update log4j in Grails 2.4 results in "Could not transfer artifact from/to grailsCentral"
现在,我发现从依赖列表中删除旧的log4j版本存在问题。
非常有趣的是,Grails 2.4.2文档解释了如何从全局集中精确地排除log4j:
https://grails.github.io/grails2-doc/2.4.2/guide/conf.html#logging
这是我的依赖关系解析部分:

grails.project.dependency.resolution = {   
 inherits("global") {
     excludes "grails-plugin-logging", "log4j"
 }
 log "verbose" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
 checksums true // Whether to verify checksums on resolve
 legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility

 repositories {
    inherits true // Whether to inherit repository definitions from plugins
    grailsPlugins()
    grailsHome()
    mavenLocal()        
    //grailsCentral()
    //mavenCentral()

    mavenRepo 'https://repo.grails.org/grails/plugins'
    mavenRepo 'https://repo1.maven.org/maven2/'
    mavenRepo 'https://repo.maven.apache.org/maven2/'
 }

 dependencies {
    ...
    compile "org.apache.logging.log4j:log4j-core:2.17.1"
    compile "org.apache.logging.log4j:log4j-api:2.17.1"
 }

 plugins {
    // plugins for the build system only
    ....
 }
}

但是,在清理并重新构建我的应用程序之后,如果运行一个依赖关系报告,log4j-1.2.17仍然会显示在那里。
更重要的是,正如我之前所说的,有些东西告诉我,我既没有使用新版本的log4j,但我不知道如何测试它。
如果我把这一点放在“排除”中:

inherits("global") {
     excludes "grails-plugin-log4j", "grails-plugin-logging", "log4j"
}

则生成失败,因为

[groovyc] groovy.lang.GroovyRuntimeException: Unable to load logging class

我猜这与许多默认Grails文件都有这样一行代码有关:

import groovy.util.logging.Log4j

我开始认为在Grails中更新log4j版本几乎是不可能的。在我看来,随着上一个关于log4j的CVE(即使这个版本不受影响),他们应该发布一些文档来解释如何更新到上一个版本。
有人知道怎么正确地做吗?

cqoc49vn

cqoc49vn1#

我正在尝试自己做这件事。我正在进行中,但目前看来,您似乎遗漏了一个重要部分...来自Log4J文档:
可选组件Log4j 2.x包含几个可以包含在应用程序中的可选组件。
Log4j 1.x API Bridge如果现有组件使用Log4j 1. x,并且您希望将此日志记录路由到Log4j 2,则删除任何log4j 1. x依赖项并添加以下内容。
[各种包含类型如下]
https://logging.apache.org/log4j/2.x/maven-artifacts.html

相关问题