Я понимаю, что это противоречит лучшим практикам maven, но, возможно, моя ситуация - одно из немногих исключений из правила - по крайней мере, я застрял в размышлениях об альтернативах: (
Среда такая:
- у нас есть устаревшее приложение с интерфейсами на основе запатентованной технологии для внешнего мира
- мы хотим использовать flash как новый интерфейс
- на основе унаследованного интерфейса мы генерируем флэш-классы и упаковываем их во флэш-SWC для использования разработчиками внешнего интерфейса
- на основе унаследованного интерфейса мы генерируем Java-классы, которые соединяют запросы службы флэш-памяти (поступающие через блейзиды) с нашим унаследованным интерфейсом
- чтобы сделать его более сложным, мы не хотим / не можем использовать pom отдельно для каждого интерфейса, так как у нас их десятки (интерфейсы), и они будут различаться только по их artifactId. Вместо этого я использую «общую» структуру проекта, которая будет параметризована (jenkins) для каждой сборки. Проект будет только использоваться в полностью автоматизированной среде.
Сначала я попытался объединить все это в один «простой» проект, который работает до того момента, когда артефакты должны быть установлены.
Мой текущий подход - это многомодульная структура проекта, основанная на справочной главе maven, которая имеет некоторые недостатки:
GenericProject
|
+-- GenerateSources from legacy interface
| +-- pom.xml
|
+-- Java
| +-- pom.xml
|
+-- SWC
| +-- pom.xml
|
+-- pom.xml
Недостатком этого подхода является то, что у меня есть ссылки из "Java" и "SWC" на внутреннюю структуру "GenerateSource", которая уродлива, но терпима.
Что мне действительно мешает - это то, что мне нужно сильно подправить плагины установки и развертывания, чтобы получить артефакты с именем и версией устаревшего интерфейса, который запустил весь процесс.
Я запустил его сейчас, но он выглядит очень хрупким.
Я рассмотрел разделение / дублирование проекта на два простых проекта:
- GenerateSources & Java
- GenerateSources & SWC
Но это только решило бы небольшое раздражение с помощью перекрестных ссылок.
Как отметил Аарон в своем комментарии, я неясно сформулировал проблему.
После еще нескольких экспериментов мне стало намного понятнее:
По сути, мне нужно решить две проблемы
- установить / развернуть два артефакта вместе
- Назовите артефакты, отличные от
project.artifactId
Любые предложения, чтобы сделать весь процесс более похожим на maven?
Заранее спасибо.