2017-02-05 5 views
0

新しいSBTプロジェクトHelloScalaを作成した後、week6というパッケージを作成し、その下にScalaワークシートを作成しました。結局、私は次のディレクトリ構造を得た:私は、ワークシートのhello.scでpackage week6を入れたときにIntelliJ SBTディレクトリ構造

~/HelloScala/.idea 
~/HelloScala/project 
~/HelloScala/src/main/scala 
~/HelloScala/src/main/scala-2.12/week6/hello.sc 

しかし、IntelliJのはProject names doesn't correspond to directories structureと警告しています。私の質問は次の通りです:

  1. IntelliJ/SBTは、正しいディレクトリ構造は何でしょうか?いくつかの.xmlファイルで指定されていますか?
  2. IntelliJは、2つのスカラーサブディレクトリ、scalaおよびscala-2.12を作成したことに注目してください。それが正しいか?または、IntelliJは何らかの形ですでに存在していたスカラを認識しませんでしたが、別のスカラをダウンロードしてインストールしましたか?

ありがとうございました!

+0

私は最初から始め、@Jun Zhang、@Darth、@ themoahの提案を試し、src/main/scalaの下にパッケージを置くと問題は解決しません。さらに悪いことに、この問題は単なる警告以上のものであり、ワークシートの第1行目の 'package xxx'では、対話モードでは出力がありません。 – sgu

答えて

0

すべてのソースコードを "main/scala"ディレクトリに置く必要があります。 "Scala-2.12"はコンパイル/ビルドした後に "project/target"の下にsbtで作成されるディレクトリです。

+0

問題が続く – sgu

+0

ディレクトリ構造についてsbtからチュートリアルをチェックしてください。http://www.scala-sbt.org/0.13.2/docs/Getting-Started/Directories.html – themoah

0

Intellij Ideaのスカラーシートの上にプロジェクト作成オプションをクリックしようとしましたか? 1つのscalaワークシートにoherパッケージをインポートする必要があるときは、そのオプションを使用します。

1

私は頻繁にIntelliJを使用しませんが、通常Scalaパッケージはsrc/main/scalaに入ります。 Scalaプロジェクトの構造は、Javaのものとあまり変わりません。最低限次のものが必要になります。

myproject 
    ├── build.sbt 
    └── src 
     └── main 
      └── scala 
       └── mypackage 

単一のパッケージ、SBTスクリプトと何もないとのプロジェクトです。より複雑な例については

、Scalaのプロジェクトは次のようになります。

projectフォルダが様々な目的のためにSBTで使用される
project 
    ├── build.sbt 
    ├── project 
    ├── target 
    └── src 
     ├── main 
     │ ├── java 
     │ ├── resource 
     │ └── scala 
     └── test 
      ├── java 
      ├── resource 
      └── scala 

targetフォルダには、コンパイル.classファイルや.jarパッケージが含まれています。

は、あなたの質問に答えるために:

  1. 上記の構造は、SBTプラグインによって暗黙的に使用されます。おそらくそれはカスタマイズ可能ですが、ほとんどの場合、これに反対することが推奨されます。
  2. あなたのScalaソースコードはsrc/main/scalaになるはずです。私は他のディレクトリがどこから来るのか分かりません。私があなたの質問を誤解し、残念ながら、私はコメントを残すことができないようだ@sgu

。あなたが処理しようとしているファイル "hello.sc"はIntelliJによって "Scalaワークシート"として扱われます。私はあなたが編集するときに評価するIntelliJの背後にあるREPLだと思います。ただし、「Scalaソースファイル」と同じ扱いではないため、package xxxを追加すると警告が表示されます。パッケージを作成する場合、ソースファイルは ".scala"拡張子でなければなりません。

関連する問題