Краткое описание моей ситуации - я работаю над кодовой базой, в которой есть аннотированные интерфейсы / классы JAX-WS, из которых мы генерируем wsdls с первым кодом. Мы используем CXF cxf-java2ws-plugin для генерации wsdl во время сборки в maven для включения в .jar, созданный для каждого модуля.
Мы хотели бы развернуть эти wsdl-файлы в репозитории maven, так как maven репозиторий может действовать как
Пока что у меня есть файл pom, который использует dependency: unpack-dependencies, чтобы поместить все файлы wsdl в проекте в один каталог в этих модулях $ {project .build.directory} (широко известный как цель / для всех).
Чего я не знаю, так это перебрать каждый из этих файлов и вызывать deploy: deploy-file mojo для каждого wsdl. Какие у меня есть варианты, так как я действительно хочу автоматизировать процесс развертывания этих файлов wsdl и чтобы никто никогда не развертывал их вручную?
Для полноты картины вот файл pom:
4.0.0
rice
org.kuali.rice
2.0.0-m7-SNAPSHOT
rice-dist-wsdl
Rice WSDL Distributions
pom
${project.build.directory}/wsdl
${project.groupId}
rice-core-api
${project.version}
${project.groupId}
rice-kew-api
${project.version}
${project.groupId}
rice-kim-api
${project.version}
${project.groupId}
rice-krms-api
${project.version}
${project.groupId}
rice-ksb-api
${project.version}
${project.groupId}
rice-shareddata-api
${project.version}
org.apache.maven.plugins
maven-dependency-plugin
unpack-wsdls
generate-resources
unpack-dependencies
**\/*.wsdl
${project.build.directory}
Который помещает wsdls в target / wsdl (они содержатся внутри wsdl / внутри каждого .jar, от которого зависит):
[whaley@sunspot ~/Repositories/Kuali/rice/dist-wsdl]
> find . -iname '*.wsdl' | head -3
./target/wsdl/CampusService.wsdl
./target/wsdl/CountryService.wsdl
./target/wsdl/CountyService.wsdl
Решение
Думал, что то, что я реализовал, отличалось от принятого ответа, предоставленного Райаном Стюардом, я принял его ответ, поскольку он заставил меня написать свой own.
По сути, это maven pom, который является подмодулем в многомодульном проекте, описанном выше. Я использую dependency: unpack-dependencies, а затем использую встроенный Groovy-скрипт для вызова deploy: deploy-file для каждого из этих файлов wsdl. Это немного похоже на хакерскую работу, но я не мог придумать лучшего способа сделать это без жесткого кодирования путей к файлам wsdl в модуле и вызова нескольких выполнений mojo файла развертывания: развертывания на них, что привело к очень подробному pom.
4.0.0
rice
org.kuali.rice
2.0.0-m7-SNAPSHOT
rice-dist-wsdl
Rice WSDL Distributions
pom
${project.build.directory}/wsdl
${project.groupId}
rice-core-api
${project.version}
${project.groupId}
rice-kew-api
${project.version}
${project.groupId}
rice-kim-api
${project.version}
${project.groupId}
rice-krms-api
${project.version}
${project.groupId}
rice-ksb-api
${project.version}
${project.groupId}
rice-shareddata-api
${project.version}
org.apache.maven.plugins
maven-dependency-plugin
unpack-wsdls
generate-resources
unpack-dependencies
**\/*.wsdl
${project.build.directory}
org.codehaus.gmaven
gmaven-plugin
deploy
execute