我的gradle构建文件中有以下内容。我的问题是log4j.properties被添加为application.xml中的ejb模块,尽管我试图按照这里的线程从xml中删除它:
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'
}
如何让gradle从application.xml中排除log4j.properties?
修改
这导致我的应用程序服务器(JBoss 6.0.0)无法启动,因为它不知道如何处理log4j.properties。我可以通过手动创建我的application.xml文件来解决它,但这使得必须维护另一件事。欢迎任何帮助!
答案 0 :(得分:1)
此代码适用于我。您需要使用'if'块来保护'remove'方法,因为多次调用闭包。我发现第一次调用它时,log4jNode被设置为'null'。
withXml {
def log4jNode = asNode().module.find { it.ejb.text() == 'log4j.properties' }
if (log4jNode) {
asNode().remove( log4jNode )
}
}