2013-11-27 11 views
34

私はScala Playプロジェクトを持っています。私はPlay 2.2.1を使用しています。 Scala、Play 2、SBTプラグインをダウンロードしました。すべてがOKですが、私は次のようなエラー(スクリーンショットを見て)表示されるコントローラにアクションのルートを呼び出すと:私はのIntelliJ IDEA 12.1.6究極のバージョンを使用していIntelliJ IDEAレポートコントローラでルートを使用したときの強調表示エラー

Screenshot1

Screenshot2

を。 Scala version 2.10.2

誰でもこの問題を解決する方法を知っていますか?

ありがとうございます!


Edit

私はプレーコンソールで、 "遊びのアイデア" コマンドを使用してのIntelliJ IDEAに私のプロジェクトを生成し、そして私がIDEAプロジェクト構造のプロジェクトは、このようなだっ開く:

screenshot6

それから私は、 @millhouseにお答えし、このギザップ([Play 2.2] "play idea" creates not working source mapping in target)について議論し、以下のフォルダを削除しましたソースのフォルダ

  • target\scala-2.10\src_managed\main\controllers
  • target\scala-2.10\src_managed\main\views

と "報告書は、エラーを強調" は消えたが、今は別のエラーがあります:

screenshot3

screenshot7

私のルート:

screenshot4

そして、下図のように、私は "ソースフォルダ" を変更しました:

screenshot5

しかし、それは私を助けていません。そして、 "指定されていない値パラメーター"のままになります。 IntelliJのはコンパイル Scalaのテンプレートやroutesファイルを検索する場所を表示する必要があるので、

+1

のIntelliJ IDEA 13にアップグレードし、使用 'ファイル] - > [インポートProject'と' SBTのproject'を選択します。 「アイデアを演出する」アイデアファイルを生成することはもはや必要ではない。 –

+1

これはバグレポートです:https://github.com/playframework/playframework/issues/1784 –

+0

これは、次の問題に関連している可能性があります。https://youtrack.jetbrains.com/issue/SCL-7726 – Martin

答えて

47

millhouseの回答が正しい答えを見つけました。 Play 2.2(そしてそれ以前のバージョンではチェックしていない)は、ルートファイルのスカラバージョンをproject_dir/target/scala-2.10/src_managed/mainに出力します。したがって、IntelliJが強調表示を取得するには、src_managed/mainがソースフォルダとして追加されていることを確認する必要があります。 javascriptの逆ルートは何らかの理由でproject_dir/target/scala-2.10/classes_managedに含まれていますので、追加する必要があります。 (classes_managedは、あなたがしたいと思うので除外に設定されているようなあなたのスクリーンショットでは、それが見える右側にXボタンを押すことによって、それをアン除外する。)

は、ここに私のプロジェクト構造のスクリーンショットです:

Working Play 2.2 project structure

更新:プレイ2.3で

(またはおそらくのIntelliJの最近のバージョン)classes_managedは、もはや問題を修正追加することはありません。 classes_managedをプロジェクトのソースに追加する代わりに、それを依存関係に追加します。これを行うことで、IntelliJはコンパイルされたroutes.classを取得できるはずです。

Working Play 2.3 dependency list

+2

を見てください。ファイル>無効化キャッシュを実行中にエラーが発生した場合は、 –

+0

Play 2.2.2 –

+0

Brilliantで動作していただきありがとうございます。チャームのように働いた! – Karlth

8

これは共通の問題であるが、それはです。私はIntelliJ 12でこの問題を解決しました。1つのインストール:IntelliJのでプロジェクトのためのモジュール設定に

  • ゴー(トップレベルを選択し、F4を打つ)
  • プロジェクト名を選択して表示されるプロジェクト構造ウィンドウで、モジュール項目を選択します。アイテム(プロジェクト名 - ビルドとは反対に項目)
  • ソースフォルダ項目にコンパイラの出力ディレクトリを追加します。
    • Scalaの2.10にとっては、これは非常に非直感的であるために、私は個人的にIntelliJのUIを見つけるtarget/scala-2.10/classes
    • です。あなたは最初
  • その変更を適用した後、IntelliJのはちょうど、別として、各routes.scala.htmlファイルをコンパイルした結果が表示されるはずです除外フォルダの外にtargetディレクトリおよび/またはそのサブディレクトリのいずれかを実行する必要がある場合がありますソースファイルであるため、「壊れた」と表示されず、自動補完が機能するはずです。
+0

@ Millhouse sourcesフォルダに "target/scala-2.10/classes/views"だけを追加するのはなぜですか?なぜ "target/scala-2.10/classes/controllers"と "target/scala-2.10/classes/models"フォルダにSourcesフォルダを追加しないのですか? –

+1

@ mr.boyfoxあなたが正しいです、私はあなたの 'routes'と' .scala.html'テンプレートファイルがすべて取得されるように私の答えを更新しました。 – millhouse

+0

ありがとう@millhouse、私はこれを試しましたが、別のエラーが表示されます。私の編集 –

関連する問題