web-dev-qa-db-ja.com

Play Framework 2.4とIntelliJのアイデア

IntelliJでPlay 2.4プロジェクトを開こうとしていますが、状況が変わったため、これを行う方法がわかりません。

以前のバージョンでは、私はただ実行できました

activator idea

または、アクティベーターUIを使用して[intelliJプロジェクトの生成]をクリックしますが、2.4ではideaコマンドが存在しないようです

[error] Not a valid command: idea (similar: eval, alias)
[error] Not a valid project ID: idea
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: idea (similar: clean)
[error] idea
[error]     ^

そして、UIが壊れているように見えます、私が生成intelliJプロジェクトをクリックすると、アプリをコンパイルしようとし、このエラーを出します:

play/Play$
Java.lang.NoClassDefFoundError: play/Play$
Use 'last' for the full log.
Failed to load project.

私はplay Javaテンプレートを使用して次のようにテンプレートを使用し、最初からプロジェクトを作成しました:

activator new

また、フォルダーをプロジェクトとしてインポートしようとしましたが、intelliJがフォルダーをプロジェクトとして識別していないようです

15
RichyHBM

IDEAを使用してプロジェクトフォルダーを開くと、同じ問題が発生し、サブフォルダーにPlay 2アプリがあり、モジュール(Play 2アプリ)をシステムにインポートしました。

そしてそれはうまくいきます。

その後、モジュールフォルダー名を変更した後、アプリを実行すると次のように表示されます。

Not a valid project ID: "project team"

フォルダーを再チェックしたところ、[ファイル]-> [プロジェクト構造]オプションで、モジュールの名前は「root」であり、「team」はプロジェクト全体のモジュール(SBTによってインポートされたモジュールではない)であることがわかりました。 、モジュールのフォルダー名を変更した後、モジュールが機能しなくなりました。

そのため、IDEA構成であるすべての.ideaフォルダーを見つけて削除し、モジュールを再度開いたりインポートしたりしても機能しません。 IDEAキャッシュの問題だと思いました。開いたプロジェクトにはキャッシュがあるので、プロジェクトフォルダーをteamから別のフォルダーに変更し、.ideaフォルダーをクリーンアップして、再度開いて再起動しました。それをインポートします。出来た。

Playアプリがサブフォルダーとしてプロジェクトフォルダーにある場合は、[ファイル]-> [プロジェクト構造]でモジュールをインポートします。

IDEAで実行する場合、プロジェクト名は「root」にする必要があります。したがって、この場合、名前フィールドで「プロジェクトチーム」の名前を「ルート」に変更する必要があります。

enter image description here

enter image description here

18
Tom

ソリューション1

私の場合(IDEA 2018.2)、build.sbtのlazy val変数を変更しました。プロジェクト名が「 top」、「root」を「top」に変更しました。

前:

lazy val root = (project in file(".")).enablePlugins(PlayScala)

後:

lazy val top = (project in file(".")).enablePlugins(PlayScala)

プロジェクト変数を変更

ソリューション2

提案された方法 Tom は、問題を部分的に解決しました。なぜなら、IDEAを再起動した後、プロジェクト名を返したため、変数を「top」からbuild.sbtの「ルート」。

前:

name: = "top" 

後:

name := "root"
6
Key

Scala/sbtをintelliJの最新バージョンに更新していなかったようです。これを実行すると、有効なプロジェクトであることがわかりましたが、ドキュメントにはSBTプロジェクトとしてインポートできると記載されていないようです。新しいsbtプロジェクトとして作成します(アクティベーターで作成したかったので、実行したくありませんでした)

また、project/play-fork-run.sbtファイルの問題もありました

2
RichyHBM

Intellij IDEAを使用すると、コマンドプロンプトを使用せずにPlayアプリケーションをすばやく作成できます。IDEの外部で何かを構成する必要はありません。SBTビルドツールが適切なライブラリのダウンロードと依存関係の解決を行いますプロジェクトを構築します。

IntelliJ IDEAでPlayアプリケーションの作成を開始する前に、最新のScalaプラグインがインストールされ、IntelliJ IDEAで有効になっていることを確認してください。Scalaで開発していなくても、テンプレートエンジンと依存関係の解決。

基本的に、Play Frameworkをインストールし、ScalaプラグインとSBTプロジェクトとしてIntellijにプロジェクトをインポートします。アクティベータを使用してIDEAプロジェクトファイルを作成しないでください。 詳細はこちら

2
Mon Calamari

Intellij Idea 16.3.3を使用していますが、この問題が時々発生します。どのように修正しましたか? SBTプラグインを開き、プロジェクトの下でコンテキストメニューを取得するだけで、[SBTプロジェクトを無視]を選択する必要があります。現在のプロセスが完了したら、このオプションを再度オンにする必要があります。これは私にとっては仕事です:)

0
Mr. Skip