首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradle: ear deploymentDescriptor -从application.xml中排除模块

Gradle: ear deploymentDescriptor -从application.xml中排除模块
EN

Stack Overflow用户
提问于 2013-10-30 19:21:23
回答 1查看 2.3K关注 0票数 5

在我的gradle构建文件中有以下内容。我的问题是,log4j.properties被添加为application.xml中的一个ejb模块,尽管我试图在这里的每个线程中删除它:

descriptor

代码语言:javascript
复制
apply plugin: 'ear'

ear {

    deploymentDescriptor {
        applicationName = 'ourapp'
        displayName = 'ourapp'
        initializeInOrder = true

            //This doesn't work:
        withXml { xml ->
            xml.asNode().module.removeAll { it.ejb.text.equals('log4j.properties') }
        }
    }
    //Add log4j.properties to ear root
    from('../../lib/log4j.properties', 'log4jProperties')
}


dependencies
{
    deploy 'javax:javax.jnlp:1.2'
    deploy 'com.oracle:ojdbc6:1.6.0'

    earlib 'org.apache:apache-log4j:1.2.16'
}

如何使分级将log4j.properties从application.xml中排除在外?

编辑

这会导致在我的应用服务器(JBoss 6.0.0)中启动失败,因为它不知道如何处理log4j.properties。我可以通过手动创建我的application.xml文件来绕过它,但是这就产生了另一件必须维护的事情。欢迎任何协助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-19 23:20:29

这个密码适用于我。您需要使用'if‘块保护'remove’方法,因为闭包被多次调用。我发现第一次调用它时,log4jNode被设置为'null‘。

代码语言:javascript
复制
withXml {
    def log4jNode = asNode().module.find { it.ejb.text() == 'log4j.properties' }
    if (log4jNode) {
        asNode().remove( log4jNode )
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19692016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档