Я розробляю кілька модулів із залежностями серед них, і я хотів би працювати з усіма ними в одному проекті IDEA. Я використовую sbt-idea для створення проектів IDEA з визначень збірки sbt, що чудово підходить для окремих проектів. Однак у випадку з кількома модулями речі, які я намагався досі, не зовсім працюють:
Використовуйте sbt-idea для створення файлу IDEA .iml для кожного модуля незалежно ; потім створіть головний проект IDEA з нуля та додайте до нього ці модулі. Це робить всі джерела модулів редагованими в одному вікні, але залежності між ними не відстежуються (тому спроба перейти від якогось джерела у проекті foo до чогось у bar переводить мене до імпортованої бібліотечної версії bar , а не до локальних джерел ).
Використовуйте збірки багатопроектних sbt (вони ж підпроекти) , де Build.scala батьківського проекту містить такі речі:
lazy val foo = Project(id = "foo", base = file("foo"))
lazy val bar = Project(id = "bar", base = file("bar")) dependsOn(foo)
Це майже працює, оскільки sbt-idea генерує головний проект IDEA із залежностями серед відстежуваних підпроектів. Однак є два застереження:
- Здається, обмеження sbt полягає в тому, що підпроекти повинні знаходитись у підкаталогах головного проекту (тобто,
file("../foo")
не дозволяється). Це насправді не те, що я хочу (що, якщо модуль - наприклад, пакет "utils" або "commons" - використовується у двох різних майстер-проектах?), Але я можу жити з ним. - Один із моїх підпроектів має власні підпроекти; Я не впевнений, чи правильно sbt працює з цими вкладеними проектами, але в будь-якому випадку sbt-idea їх ігнорує. Очевидно, що мені потрібно, щоб вкладені підпроекти були рекурсивно включені в головний проект.
Підсумовуючи: я хотів би зібрати модулі, які вже можуть мати підпроекти, в один великий проект IDEA з відстежуваними залежностями для зручного редагування. Як я можу це зробити? Дякую!