36 votes

IntelliJ IDEA - plugin sbt - 'Le type d'expression Def.Setting[...] doit être conforme à DslEntry dans le fichier sbt'.

J'ai cherché des questions similaires, j'ai trouvé ceci :

Le type d'expression DslEntry doit être conforme à Def.SettingsDefinition dans le fichier SBT à la ligne enablePlugins(JavaServerAppPackaging)

Mon problème est similaire, mais il se produit sur chaque ligne.

image link

Lorsque j'essaie de l'exécuter, il se compile et s'exécute avec succès. Lorsque je clique sur "Importer le projet", la notification jaune ne disparaît pas, mais le projet se recharge avec succès. Si je réécris une ligne comme, par exemple, val _ = scalaVersion := "2.12.4" l'erreur disparaît, mais c'est affreux.

1 votes

Avez-vous importé votre projet en tant que sbt project ? Quelle version du plugin Idea & Scala utilisez-vous ?

1 votes

Oui, même sur la fenêtre de l'outil sbt. Je viens de mettre à jour Idea et ses plugins, Idea est en 2017.3.4 Build #IU-173.4548.28 Scala plugin est en 2017.3.11.1

1 votes

J'ai le même problème.

21voto

Yogesh Funde Points 587

J'ai eu le même problème. Cette solution a fonctionné à chaque fois. 1. Cliquez sur l'onglet sbt du côté droit dans IntelliJ Idea. 2. Cliquez sur le symbole de rafraîchissement

Il revalidera le cache local et les dépendances de Gradle. C'est tout.

1 votes

Merci - une solution beaucoup plus simple. Une chose - le fichier projet/sbt doit apparaître dans l'onglet sbt. S'il n'est pas présent ou ne s'affiche pas, utilisez le bouton + de la barre d'outils supérieure de l'onglet sbt pour l'afficher.

3 votes

Après avoir fait cela, j'ai dû redémarrer intellij avant que les lignes rouges ne disparaissent.

20voto

Hartmut Points 426

J'ai fermé et supprimé le projet dans IntelliJ, puis, dans mon dossier de projet, j'ai supprimé les sous-dossiers project/ , target/ y .idea/ . Il ne restait plus que build.sbt y src/ . Ensuite, dans IntelliJ, j'ai fait : Fichier -> Nouveau -> Projet à partir de sources existantes -> importer le projet à partir d'un modèle externe -> sbt .

Cette procédure a généré un nouveau fichier de projet .idea.

Expression type Def.Setting[String] must conform to DslEntry in SBT file a disparu maintenant.

J'espère que cela vous aidera.

MISE À JOUR 2018-11-17 :

Lors du brassage des modules et des projets dans IntellIJ SBT, essayez de remplacer

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

avec un toujours distingué

lazy val root = Project(id="module_xyz", base = file("."))

Dans mon cas, le problème a été résolu de cette façon ! Il est survenu à partir de ayant plusieurs (project in file(".")) en différents fichiers modules/build.sbt appartenant au même projet IntelliJ SBT. Il me semble qu'il ne peut y avoir qu'une seule (project in file(".")) dans un projet IntelliJ SBT multi-modules. Ainsi, le fait d'avoir plusieurs Project(id="module_xyz", base = file(".")) peut résoudre ce problème.

1 votes

J'ai rencontré des problèmes de construction avec sbt à la suite d'un remaniement du paquet J'ai donc supprimé le .idea , target et a fait sbt clean --clean-files et a également apporté quelques modifications dans build.sbt . Par la suite, l'ouverture du projet dans IntelliJ a commencé à me donner cette erreur. Tout ce que j'ai fait, c'est de fermer le projet, le retirer de IntelliJ 's récemment ouvert.. liste et ensuite réimportation comme sbt project et ça a marché comme un charme [ SBT 1.1.6 , Scala 2.12.6 , Java 1.8 ]

1voto

Brian Buh Points 11

Vous pouvez également essayer de couper et de coller tout ce qui se trouve dans votre fichier build.sbt dans un document Word, d'importer vos modifications, puis de les recoller dans le fichier build.sbt.

0voto

lex82 Points 1530

J'ai simplement installé la dernière version de sbt sur mon système et mis à jour le fichier project/build.properties pour qu'il contienne le nouveau numéro de version. Cela a résolu le problème pour moi. Vous devrez peut-être déclencher manuellement un rafraîchissement dans IntelliJ.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X