Gradle — веб-модуль в дескрипторе развертывания

Я пытаюсь добавить веб-модуль в файл Ear. Я поместил его в свой собственный дескриптор развертывания, используя webModule(":wars/myweb","/mywebapp"). Это не включает файл войны в файл уха. Это просто добавление записи в сгенерированный application.xml с этими данными.
Не могли бы вы помочь включить веб-модуль в ухо, используя настраиваемый дескриптор развертывания?
Моя задача на ухо выглядит так в 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"

Ценю вашу помощь.


person Chakri    schedule 09.09.2011    source источник
comment
Я попытался добавить в него зависимости и проект, теперь он создает и включает войну в ухе. Он автоматически устанавливает корень контекста с именем файла войны, тогда как я хочу установить свой собственный корень контекста. Какие-либо предложения?? Зависимости Ear выглядят так:   -  person Chakri    schedule 09.09.2011
comment
webModule(':wars/myweb', '/mywebapp') не работает? Какую версию градла вы используете?   -  person rodion    schedule 10.09.2011


Ответы (1)


Я использую этот способ для привязки военных зависимостей к webModules. warMap обеспечивает связь между идентификатором артефакта и контекстным путем:

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)
        }
    }
}
person thoredge    schedule 13.09.2011
comment
Спасибо, работает нормально, добавляет два корня контекста, что нарушает спецификацию J2EE 1.4. Таким образом, развертывание не удается. Приветствуется любая помощь. - person Chakri; 14.09.2011
comment
Хм, какое сообщение вы получаете? Это урезанный пример у меня наверное ear.deploymentDescriptor.version='6' - person thoredge; 14.09.2011
comment
Сообщение: Файл не существует для элемента модуля с uri myweb. Он добавляет один корень контекста с задачей развертывания, а другой — с веб-модулем в дескрипторе развертывания. - person Chakri; 14.09.2011
comment
Как называется ваш военный файл и что говорит web.xml? Я не уверен, что вы имеете в виду. Это добавление одного корня контекста с задачей развертывания; какая задача развертывания? - person thoredge; 14.09.2011
comment
Имя файла войны — myweb.war. Он добавляет один корень контекста с dependencies››warMap.each››deploy project() в файл application.xml, который генерируется при запуске сборки. - person Chakri; 14.09.2011
comment
Я только что помог коллеге, который столкнулся с той же проблемой. Аргумент имени файла веб-модуля (здесь: it.key + '-' + project.version + .war) должен напрямую совпадать с фактическим именем файла, введенным в войну. Если вы это сделаете, то ушной плагин не будет создавать дополнительных записей. - person thoredge; 16.09.2011