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がフォルダーをプロジェクトとして識別していないようです
IDEAを使用してプロジェクトフォルダーを開くと、同じ問題が発生し、サブフォルダーにPlay 2アプリがあり、モジュール(Play 2アプリ)をシステムにインポートしました。
そしてそれはうまくいきます。
その後、モジュールフォルダー名を変更した後、アプリを実行すると次のように表示されます。
Not a valid project ID: "project team"
フォルダーを再チェックしたところ、[ファイル]-> [プロジェクト構造]オプションで、モジュールの名前は「root」であり、「team」はプロジェクト全体のモジュール(SBTによってインポートされたモジュールではない)であることがわかりました。 、モジュールのフォルダー名を変更した後、モジュールが機能しなくなりました。
そのため、IDEA構成であるすべての.ideaフォルダーを見つけて削除し、モジュールを再度開いたりインポートしたりしても機能しません。 IDEAキャッシュの問題だと思いました。開いたプロジェクトにはキャッシュがあるので、プロジェクトフォルダーをteam
から別のフォルダーに変更し、.ideaフォルダーをクリーンアップして、再度開いて再起動しました。それをインポートします。出来た。
Playアプリがサブフォルダーとしてプロジェクトフォルダーにある場合は、[ファイル]-> [プロジェクト構造]でモジュールをインポートします。
ソリューション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"
Scala/sbtをintelliJの最新バージョンに更新していなかったようです。これを実行すると、有効なプロジェクトであることがわかりましたが、ドキュメントにはSBTプロジェクトとしてインポートできると記載されていないようです。新しいsbtプロジェクトとして作成します(アクティベーターで作成したかったので、実行したくありませんでした)
また、project/play-fork-run.sbtファイルの問題もありました
Intellij IDEAを使用すると、コマンドプロンプトを使用せずにPlayアプリケーションをすばやく作成できます。IDEの外部で何かを構成する必要はありません。SBTビルドツールが適切なライブラリのダウンロードと依存関係の解決を行いますプロジェクトを構築します。
IntelliJ IDEAでPlayアプリケーションの作成を開始する前に、最新のScalaプラグインがインストールされ、IntelliJ IDEAで有効になっていることを確認してください。Scalaで開発していなくても、テンプレートエンジンと依存関係の解決。
基本的に、Play Frameworkをインストールし、ScalaプラグインとSBTプロジェクトとしてIntellijにプロジェクトをインポートします。アクティベータを使用してIDEAプロジェクトファイルを作成しないでください。 詳細はこちら
Intellij Idea 16.3.3を使用していますが、この問題が時々発生します。どのように修正しましたか? SBTプラグインを開き、プロジェクトの下でコンテキストメニューを取得するだけで、[SBTプロジェクトを無視]を選択する必要があります。現在のプロセスが完了したら、このオプションを再度オンにする必要があります。これは私にとっては仕事です:)