Grails - 如何从 WAR 中删除 log4j

Posted

技术标签:

【中文标题】Grails - 如何从 WAR 中删除 log4j【英文标题】:Grails - how to remove log4j from WAR 【发布时间】:2012-04-23 19:55:44 【问题描述】:

我想从 Grails 构建的 WAR 中删除 log4j。我的 jboss 已经部署了它。 我正在尝试:

grails.project.dependency.resolution = 
    ...
    dependencies 
        provided 'log4j:log4j:1.2.16'
    

但它不起作用。在构建之后,WAR 仍然包含 log4j-1.2.16.jar。怎么办?

【问题讨论】:

【参考方案1】:

把它放在 BuildConfig.groovy 的底部:

grails.war.resources =  stagingDir ->
   delete(file:"$stagingDir/WEB-INF/lib/log4j-1.2.16.jar")

【讨论】:

哇!感谢您的快速回答。当然,它奏效了。为你 +1。【参考方案2】:

每当我进行 grails 战争时,让运行 grails doc 以及将 grail log4j 插件包含到我的战争中都是浪费。前者有错误,也需要大量时间来减缓战争的产生。后者导致运行时异常,要求将 log4j.xml 放入 grails-app/conf。显然生产战争没有 grails-app/conf 目录。它也不存在于我从中运行启动的 tomcat bin 中。有没有办法在战争期间避免“grails doc”并为 log4j.xml 复制一个冗余文件以避免该异常?我的 grails 版本是 1.3.4

【讨论】:

以上是关于Grails - 如何从 WAR 中删除 log4j的主要内容,如果未能解决你的问题,请参考以下文章

Grails 部署问题(WAR 和 Tomcat)

从war文件中排除所有不必要的jar

如何在 grails 中禁用 log4j 插件?

我们如何将更高版本的 Log4j 设置为 grails 应用程序

如何在 AWS Elastic Beanstalk 中为多个 grails 环境使用单个 .war?

如何从 Grails 中正确删除 H2