我正在尝试在 Ear 文件中添加一个 Web 模块。我使用 webModule(":wars/myweb","/mywebapp") 将它放在我的自定义部署描述符中。它不包括ear 文件中的war 文件。它只是在生成的 application.xml 中添加一个带有这些详细信息的条目。
您能否使用定制的部署描述符帮助在耳朵中包含一个 Web 模块?
我的耳朵任务在 build.gradle 中看起来像这样
ear {
libDirName ''
deploymentDescriptor {
// custom entries for application.xml:
// fileName = "application.xml" // same as the default value
version = "1.4" // same as the default value
applicationName = "myapp"
initializeInOrder = true
displayName = "myear" // defaults to project.name
description = "EAR for the basic package" // defaults to project.description
webModule(':wars/myweb','/mywebapp')
}
}
我的 settings.xml 在与 build.gradle 相同的目录中看起来像这样
include "wars/myweb"
感谢你的帮助。
最佳答案
我使用这种方式将 war 依赖关系与 webModules 联系起来。 warMap 提供了工件 id 和上下文路径之间的连接:
Map warMap = [
'my-war': 'contextpath',
'my2-war': 'contextpath2'
}
dependencies {
warMap.each {
deploy project(":$it.key")
}
}
ear {
deploymentDescriptor {
warMap.each {
webModule(it.key + '-' + project.version + ".war", it.value)
}
}
}
关于war - Gradle - 部署描述符中的 Web 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364302/