использование нескольких войн для разрешения нескольких версий Scala

1

Обычно я использую scala 2.10.x Из -за некоторые ограничения компонентов, которые я не имею никакого контроля над, я должен использовать kafka версию клиента 0.7.2 Однако эта версию kakfa может быть скомпилирована только с версией 2.9.2 Скале и не работаю с Скале 2.10. note: Я не могу использовать более новые версии kafka, но не работает, я не контролирую фактическую версию kafka поэтому я должен использовать эту версию клиента. поэтому я должен использовать клиент kafka 0.7.2

Поэтому у меня было несколько вариантов:

  1. Загрузите источники 0.7.2 kafka client и скомпилируйте с scala 2.10 к сожалению, слишком много изменений в источниках для выполнения.
  2. Используйте jarajar и обновите scala-library.jar чтобы иметь префикс в упаковке что-то вроде scala.* → scala.29.*, Затем обновите kafka client 0.7.2, чтобы импортировать классы из scala.29.* Я пробовал это, а также проблемы здесь.
  3. Это то, что я собираюсь делать сейчас - создайте еще один .war на моем веб-сервере tomcat, поскольку tomcat будет загружать разные войны с разными загрузчиками классов, я могу отправлять свои кафкинские запросы вместо моей первоначальной war с моей war1 на war2 и war2 будет простым веб-приложением, которое будет содержать простого kafka client 0.7.2.

Мой вопрос: звучит ли вариант 3? У меня есть некоторые мысли о его накладных расходах, если я отправляю запросы GET на localhost только потому, что у меня есть несколько wars чтобы решить проблему с несколькими загрузчиками классов, насколько это хорошо/плохо?

Теги:
maven
tomcat
apache-kafka

1 ответ

1
Лучший ответ

закончил скомпилировать kafka client 0.7.2 с scala 2.10, было не сложно, все работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню