Gradle - 部署描述符中的Web模块

时间:2011-09-09 15:54:07

标签: war ear gradle

我正在尝试在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')

}

}

与build.gradle在同一个目录中的我的settings.xml看起来像这样

include "wars/myweb"

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我使用这种方式将战争依赖关系绑定到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)
        }
    }
}
相关问题