Я пытаюсь собрать ухо с Gradle, в котором application.xml
содержит некоторые неэдж-модули. Зависимые архивы проектов генерируются с помощью стандарта {basename}-{version}.{extension}
и, таким образом, выглядят примерно так, например. subproject-0.2.6.rar
. Однако, поскольку некоторые из этих проектов должны быть отмечены как java или соединительный модуль, у меня возникают проблемы с исправлением правильных файлов.Gradle Ear Plugin: добавление модулей без спецификатора версии
Это то, что сценарий сборки выглядит следующим образом:
apply plugin: 'ear'
dependencies {
deploy project(':EJB-Project')
deploy project(':Commons')
deploy project(':UpdateManager')
earlib 'net.sf:jasperreports:unknown'
earlib 'org.apache.axis:axis:1.4'
}
ear {
deploymentDescriptor {
applicationName = 'EnterpriseProject'
module('Commons.jar', 'java')
module('UpdateManager.rar', 'connector')
}
// Remove the version postfix from archived files
rename(/(.*)-${version}(.)/, /$1$2/)
}
jboss-deployment-structure.xml
имеет архивы в узлах суб-развертывания, объявленных без версии спецификатора тоже.
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
...
<sub-deployment name="EJB-Project.jar">
<dependencies />
<exclusions />
</sub-deployment>
<sub-deployment name="Commons.jar">
<dependencies />
<exclusions />
</sub-deployment>
...
Метод переименования в задаче ухи успешно переименовывает библиотеку из конфигурации deploy
, но Gradle добавляет зависимости, которые явно не добавляются через module(String path, String identifier)
автоматически с их оригинальным названием, как модуль EJB:
<module>
<ejb>EJB-Project-4.5.2.jar</ejb>
</module>
Я хотел бы решить это чистым способом - например, ссылаться на сам проект в разделе модуля, а не указывать имя файла (и его расширение) и генерировать xml для развертывания JBoss, но я как-то застрял. Я хочу, чтобы все строки версий удалялись или сохраняли все.