web-dev-qa-db-fra.com

Play Framework 2.4 et IntelliJ Idea

J'essaie d'ouvrir un projet de jeu 2.4 dans IntelliJ mais, comme les choses ont changé, je ne sais pas comment faire.

Dans les versions précédentes, je pouvais juste courir

activator idea

Ou utilisez l'interface utilisateur de l'activateur et cliquez sur générer un projet intelliJ, mais en 2.4 la commande idée n'existe pas

[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]     ^

Et l'interface utilisateur semble cassée, lorsque je clique sur générer un projet intelliJ, il tente de compiler l'application et génère l'erreur suivante:

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

J'ai créé le projet à partir de zéro en utilisant le modèle de jeu Java avec:

activator new

J'ai également essayé d'importer le dossier en tant que projet, mais intelliJ ne semble pas l'identifier en tant que projet.

15
RichyHBM

Je rencontre le même problème, car j’utilisais IDEA pour ouvrir un dossier de projet. Il y avait une application Play 2 dans un sous-dossier, puis j’importais un module (application Play 2) dans le système. 

Et ça marche bien.

Après cela, j'ai changé le nom du dossier du module, puis, lorsque je lance l'application, il affiche:

Not a valid project ID: "project team"

J'ai revérifié le dossier et constaté que dans l'option Fichier -> Structure du projet, le nom du module est "racine" et que "l'équipe" est le module du projet entier (pas le module importé par SBT), donc apparemment. , le module ne fonctionnait pas après avoir changé le nom du dossier du module.

J'ai donc trouvé et supprimé tout le dossier .idea, qui correspond à la configuration IDEA, puis rouvert/réimportait le module, mais ne fonctionnait toujours pas. Je pensais qu'il s'agissait d'un problème de cache IDEA. Il contient un cache pour le projet ouvert. J'ai donc remplacé le dossier du projet de team par un autre, nettoyé les dossiers .idea et rouvert/réimporté. Ça a marché.

Si l'application de lecture se trouve dans le dossier du projet en tant que sous-dossier, importez le module dans Fichier -> Structure du projet.

Le nom du projet doit être "root" lors de son exécution dans IDEA. Dans ce cas, vous devez donc renommer "équipe de projet" en "racine" dans le champ du nom.

 enter image description here

 enter image description here

17
Tom

Solution 1

Dans mon cas (IDEA 2018.2), j'ai modifié la variable lazy val dans build.sbt. Elle portait le nom "root" lorsque mon nom de projet était "top", remplacée par "root" par "top".

Avant:

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

Après:

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

Changer la variable de projet

Solution 2

La méthode proposée par Tom a partiellement résolu mon problème, car après avoir redémarré le IDEA, j'ai renvoyé le nom du projet, il était nécessaire de remplacer la variable "top" par "root" dans build.sbt.

Avant:

name: = "top" 

Après:

name := "root"
5
Key

Il semble que je n’ai pas mis à jour scala/sbt avec la dernière version d’intelliJ Une fois terminé, je me suis aperçu que c’était un projet valide, bien que la documentation ne semble pas mentionner que vous pouvez l’importer en tant que projet SBT, comment le créer en tant que nouveau projet sbt (ce que je ne voulais pas faire car je voulais le créer via activator)

J'ai également eu le problème de fichier project/play-fork-run.sbt

2
RichyHBM

Intellij IDEA vous permet de créer rapidement une application de lecture sans utiliser d'invite de commande. Vous n'avez pas besoin de configurer quoi que ce soit en dehors de l'EDI, l'outil de compilation SBT se charge de télécharger les bibliothèques appropriées, de résoudre les dépendances et de construire le projet.

Avant de commencer à créer une application de lecture dans IntelliJ IDEA, assurez-vous que le dernier plug-in Scala est installé et activé dans IntelliJ IDEA. Même si vous ne développez pas dans Scala, cela vous aidera avec le moteur de template et la résolution des dépendances.

En gros, installez les plugins Play Framework, Scala et importez le projet dans Intellij en tant que projet SBT. N'utilisez pas activator pour créer les fichiers de projet IDEA. Plus de détails ici.

2
Mon Calamari

J'utilise Intellij Idea 16.3.3 et ce problème apparaît parfois. Comment je l'ai réparé? Vous avez juste besoin d'ouvrir votre plugin SBT et sous votre projet le menu contextuel, vous devez alors choisir "Ignorer le projet SBT". Une fois le processus en cours terminé, vous devez réactiver cette option. C'est un travail pour moi :)

0
Mr. Skip