Scala - sbt, main.scala и пользовательский пакет - PullRequest
0 голосов
/ 29 января 2012

Я использую SBT 0.11.0. Требуется, чтобы все источники были помещены в:

[project]/src/main/scala/

Однако я хочу специальный пакет, такой как:

[project]/src/com/test/...

Я могу оставить все как требуется SBT, а затем указать в каждом исходном файле свой пакет:

package com.test

Но у меня возникли некоторые проблемы с автофункциями Eclipse, такими как операторы импорта, генерация новых классов ... Eclipse всегда добавляет main.scala до com.test. Что я могу сделать, чтобы решить эту проблему?

Отредактировано

Например, у меня есть это:

[project]
  src
    main
      scala
        com
          test
            A.scala
              package com.test
              ...
            B.scala
              package com.test
              ...

В B я использую некоторые функции A, набираю его, затем нажимаю Ctrl+Shift+O, чтобы позволить Eclipse импортировать A. Eclipse делает это:

import main.scala.com.test.A

Но в A я установил пакет на com.test (не main.scala.com.test).

Это небольшой пример. Но когда у меня много исходных файлов, мне нужно провести рефакторинг своего кода, все будет сложнее ...

Ответы [ 2 ]

6 голосов
/ 29 января 2012

Вы путаете исходные папки и пакеты!

sbt по соглашению использует исходную папку src / main / scala для кода Scala.В этой папке вы можете создавать любые пакеты, например, вложенную папку foo / bar с файлом Baz.scala , который содержит следующий код:

package foo.bar

object Baz {
  ...
}
1 голос
/ 29 января 2012

Если вы используете плагин eclipse для sbt , вы можете указать sbt создать проект Eclipse, в котором все детали настроены для корректной работы со структурой проекта sbt. Все детали, которые вам нужны, чтобы добавить его в ваш проект sbt и запустить его, находятся по ссылке выше.

...