Как добавить локальные проекты maven как модули в проект sbt / Play? - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть проект Maven («пример-квадрат»), который предоставляет классы для вычисления квадрата и куба целого числа.У меня также есть проект фреймворка sbt / Play ("sbt_hello"), который использует классы square и cube из "example-square".Я хочу дополнить свой проект "example-square" несколькими новыми классами (например, добавив класс с квадратным корнем).

Чтобы все работало вместе, я включил свой проект Maven какзависимость от библиотеки в моем build.sbt, но я также добавил ее как модуль в IntelliJ (используя File > Project Structure > Modules > sbt_hello > Dependencies > Add Module Dependency...).Запуск моих тестовых классов, которые используют классы квадрата и куба, полностью успешен.Все изменения в коде немедленно отражаются в тестах.

Однако, когда я обновляю свой проект sbt или пытаюсь запустить проект Play, я получаю сообщение об ошибке, что существует неразрешенный путь зависимости.

Я полагаю, что добавление его как модуля в IntelliJ позволяет тестам успешно выполняться, а добавление его к зависимостям библиотеки - это то, что заставляет sbt искать jar-файлы (что я хочу?), Это просто выглядитв неправильных местах.Согласно журналу ошибок, sbt просматривает только следующие папки:

[warn]  module not found: example#example-square;1.0-SNAPSHOT
[warn] ==== local: tried
[warn]   C:\Users\just_me\.ivy2\local\example\example-square\1.0-SNAPSHOT\ivys\ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/example/example-square/1.0-SNAPSHOT/example-square-1.0-SNAPSHOT.pom
[warn] ==== local-preloaded-ivy: tried
[warn]   C:\Users\just_me\.sbt\preloaded\example\example-square\1.0-SNAPSHOT\ivys\ivy.xml
[warn] ==== local-preloaded: tried
[warn]   file:/C:/Users/just_me/.sbt/preloaded/example/example-square/1.0-SNAPSHOT/example-square-1.0-SNAPSHOT.pom

Конечно, пакета там нет, так как это проект Maven, и я не запускал mvn install (даже если я это сделал,файлы jar были бы установлены в .m2).

Я пытался добавить свой модуль через File > Project Structure > Modules > sbt_hello > Sources > Add Content Root ранее, как это задокументировано здесь , но IntelliJ продолжает удалять этот модуль,когда я обновляю свой проект sbt.

В: Как правильно указать фактический проект Maven из моего проекта sbt / Play при использовании IntelliJ?

Кстати, яЯ новичок в sbt / Play и Scala в целом (хотя раньше я работал с Java).

1 Ответ

0 голосов
/ 14 декабря 2018
  1. Добавить в свой build.sbt: resolvers += Resolver.mavenLocal
  2. Установить с помощью mvn install проекта в локальный репозиторий maven ($ USER / .m2).
  3. Добавить зависимость к вашемуфайл build.sbt.

Второй вариант - использовать артефакт для публикации локальных проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...