web-dev-qa-db-ja.com

Intellij IDEA Playフレームワークでシンボルを解決できません

Play 2.2.1でIDEA 13を使用しており、 play site でサンプルを実行していました。

public static Result index() {
   return redirect(routes.Application.tasks());
}

IDEAは「メソッドredirect(?)を解決できません」と言い、赤い下線route.Application.tasks()

私はプレイコンソールから「コンパイル」してから「アイデア」を実行しました。

29
Pavan K Mutt

コントローラーをテストするときに同様の問題がありました。 "File" > "Open Project"で解決し、Playフレームワークプロジェクトのベースフォルダーを選択します(SBT設定を使用して再インポートできるように、フォルダーからすべてのアイデア設定ファイルを削除します)。

IDEAのSBTサポートの最後のバージョンは、作業の90%を行いました。その後、F4を押してモジュール設定ダイアログに入ります。下の図のようにプロジェクトの依存関係を設定しますset IDEAそして私のプロジェクトにはまだ存在しないので、あなたのプロジェクトに存在するかどうか心配しないでください。)アイデアが使用するコードにマネージクラスと生成コードを含めることの問題です。インデックス。

enter image description here

これでIDEA=内からこのようなコードを使用でき、問題なくデバッグできます。

Result result = Helpers.callAction(controllers.routes.ref.CrudController.createEntity(CrudEntities.contact.name()),
        new FakeRequest().withJsonBody(paramJson)
);

あなたのやり方もうまくいくはずです。

さて、「IntelliJ Idea 13」を使用し、「Activator」で「sbt」Playframeworkプロジェクトを実行しています。すべてを試した後、既存のルートsbtプロジェクトのterminal/cmdで次の手順を実行して、この問題をようやく解決しました。

  1. terminal/cmdで次のコマンドを入力します:sbt clean
  2. 次に、これらのファイルとフォルダーを削除します。「。idea」、「すべての_.imlファイル」、「すべてのターゲットフォルダーはプロジェクトフォルダーに存在します(これは必要ではないかもしれませんが、私がしました。)」
  3. terminal/cmdで次のコマンドを入力します:sbt idea
  4. 今IntelliJで:プロジェクトを開く

注:sbt ideaコマンドの代わりに「Activator」ではなく「Play」コマンドを使用してPlayframeworkプロジェクトをビルドする場合は、play ideaまたはplay "idea with-sources=yes"を試すことができます。

これがお役に立てば幸いです。

10
Ramesh Shrestha

これらの手順は私のために機能します:plugins.sbtファイルに次の行を追加します:

resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.2.0")
but if you don't know the correct version of sbt-idea then use this instead:
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "latest.integration")

警告-すべてのバージョンを解析して最新バージョンを取得する必要があるため、ビルドに時間がかかりすぎます。

このコマンドを実行します-

sbt gen-idea
7
Sunil Kapil

生成されたコードディレクトリを「ソース」フォルダーとしてマークすることで問題を解決できました。 [ファイル]-> [プロジェクト構造]-> [ルート]モジュール-> [ソース]に移動します。

Intellij Project Structure with Module Settings

6
Atul Dambalkar

Intellij IDEA=ルートなどの再生変数を解決するには、以下のプラグインエントリをplugins.sbt(プロジェクトフォルダーの下)に追加する必要がありました。

addSbtPlugin( "com.github.mpeltonen"% "sbt-idea"% "1.6.0")

注:上記のプラグインをplugins.sbtに追加したら、以下のコマンドを実行してアイデアを再構築し、問題を解決します。

  • アクティベータークリーン
  • アクティベーターのアイデア
4
Arun Gopalpuri

同様の問題がありました-IDEA Play!フレームワークの依存関係を解決できませんでした。

私の場合、.ideaフォルダーに問題がありました。プロジェクトを別のフォルダーにコピーし、コピーしたプロジェクトのルートフォルダーで「アクティベーターアイデア」コマンドを実行しました。次に、元のプロジェクトの.ideaフォルダーを比較し、プロジェクトをコピーしました-そこで違いが見つかりました!フォルダー内のコピーされたプロジェクト。idea/libraries依存関係へのリンクを含むXMLファイルがたくさんあったので、同じフォルダーに元のプロジェクトにコピーし、プロジェクトのインデックスを再作成しました。 :)プロジェクトの設定を失いたくなかったので、このようにしました(元のプロジェクトフォルダーで.ideaフォルダーを削除し、コマンド「アクティベーターアイデア」を実行すると問題は解決しますが、プロジェクトの設定は失われます)。

これが何らかの形で役立つことを願っています:)。

0
Pavol Golias

私の場合、sbtを入力するプロジェクトの権限を持っていないユーザーからsbtコマンドを実行します。クリーンアップしてから、chown -R yourUser/path/to/projectでフォルダーの権限を変更すると、修正する必要があります。その後 ./sbt compile

0
Holsi Hasanaj