Я пытаюсь создать собственную службу контроллера nifi. Для этого мне нужно создать проект maven в eclipse на основе архетипа nifi-service-bundle-archetype. При этом создается следующая структура:
-Project
-- ContollerService
---pom.xml
-- ContollerService-api
---pom.xml
-- ContollerService-api-nar
---pom.xml
-- ContollerService-nar
---pom.xml
-pom.xml
В дополнение к подмодулям у проекта есть собственный pom.xml, и каждый подмодуль имеет свой собственный pom.xml.
Проект pom .xml выглядит следующим образом:
4.0.0
org.apache.nifi
nifi-nar-bundles
1.16.0
nifi
ContollerService
1.0
pom
ContollerService-api
ContollerService-api-nar
ContollerService
ContollerService-nar
Субмодуль зависит от разных пакетов nifi.
Проблема, с которой я столкнулся, заключается в том, что я пытаюсь создать две разные сборки для двух разных версий nifi 1.16. .0 и 2.0.0-M3 . У меня вопрос: как лучше всего управлять двумя разными версиями nifi в одном проекте с учетом следующих ограничений:
1- версия nifi 1.16 использует Java 1.8, а версия 2.0.0- M3 использует Java 21.
2- в проекте pom, когда версия nifi равна 1.16, родительский элемент:
org.apache.nifi
nifi-nar-bundles
1.16.0
однако для версии 2.0.0M3 используется другой родительский пакет:
org.apache.nifi
nifi-extension-bundles
2.0.0-M3
Моя цель — создать разные сборки maven для разных версий в рамках одного и того же проекта maven, который будет заботиться о следующем:
1 — применить правильные пакет (с правильной версией) в pom проекта.
2- применить правильную версию зависимости nifi в каждом подмодуле.
3- применить правильная сборка Java (если мне придется создать другой профиль сборки, чтобы справиться с этим, ничего страшного).
Я пробовал профилировать и пробовал использовать свойства, но, похоже, ничего не помогло полностью. для профилирования мне все равно приходилось вручную менять родительский пакет\версию для каждой версии\сборки.
РЕДАКТИРОВАТЬ несколько часов спустя:
Я ценю всех, кто может помочь мне достичь того, что я ищу, или сообщить мне, что это невозможно с текущим шаблоном\архетипом, который я использую. Чтобы продолжить и предоставить больше контекста для моего вопроса, вот как сейчас выглядит pom для каждого pom модуля и pom родительского проекта:
ContollerService:
nifi
ContollerServiceProject
1.0
nifi-ContollerService
jar
nifi
nifi-ContollerService-api
1.0
version2M3
21
org.apache.nifi
nifi-api
2.0.0-M3
org.apache.nifi
nifi-site-to-site-reporting-task
2.0.0-M3
version116
1.8
org.apache.nifi
nifi-api
1.16.0
org.apache.nifi
nifi-site-to-site-reporting-task
1.16.0
org.apache.nifi
nifi-nar-bundles
1.16.0
nifi
ControllerServiceProject
1.0
pom
nifi-ControllerService-api
nifi-ControllerService-api-nar
nifi-ControllerService
nifi-ControllerService-nar
Подробнее здесь: https://stackoverflow.com/questions/786 ... pendencies
Управление несколькими версиями внешних зависимостей ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение