Gradle + Intellij IDEA 13 bug

J’essaie de configurer une simple application Web avec les grades 1.7, Jetty 9.2 et Intellij IDEA 13

Voici quelques lignes de configuration typiques de la construction de niveaux trouvées dans les tutoriels que j’utilise:

apply plugin: 'jetty' sourceCompatibility = 1.5 version = '1.1' repositories { mavenCentral() } dependencies { providedComstack 'javax.servlet:servlet-api:2.5' // other dependencies } 

La configuration à lancer dans IDEA est dans Edit Configurations...->Add->Gradle , la tâche est jettyRun . Pour la première fois, tout fonctionne bien, la jetée démarre, la webapp est disponible dans un navigateur. Mais si je modifie quelque chose dans le fichier gradle.build et que je relance la tâche, l’erreur suivante se produira:

 A problem occurred configuring root project 'gr3'. Could not open buildscript class cache for build file 'D:\Work\priv\gr3\build.gradle' (C:\Users\Sazankov_LY\.gradle\caches\1.7\scripts\build_546r8n6d85n2abfbi95h2qqmh4\ProjectScript\buildscript). Timeout waiting to lock buildscript class cache for build file 'D:\Work\priv\gr3\build.gradle' (C:\Users\Sazankov_LY\.gradle\caches\1.7\scripts\build_546r8n6d85n2abfbi95h2qqmh4\ProjectScript\buildscript). It is currently in use by another Gradle instance. Owner PID: unknown Our PID: 11948 Owner Operation: unknown Our operation: Lock file: C:\Users\Sazankov_LY\.gradle\caches\1.7\scripts\build_546r8n6d85n2abfbi95h2qqmh4\ProjectScript\buildscript\cache.properties.lock 

La seule façon de continuer à travailler est de redémarrer l’IDE

Des idées?

Après quelques recherches, j’ai découvert que le problème est dans la jetée de terminaison correcte. Si vous arrêtez la jetée en cliquant sur le bouton “Terminer” de la barre d’outils d’IDEA, le verrou rest sur le fichier cache. Vous devez donc arrêter la jetée via la tâche jettyStop . Vous devez également spécifier stopKey et stopPort pour une exécution réussie de la tâche.

supprimer le fichier de locking

 sudo rm -f  

tuer le pid

 kill -9  

Réessayer

 gradle jettyRun -PbuildProfile= 

Il s’agit d’un problème connu lorsque plusieurs versions sont en cours d’exécution à partir du même fichier build.gradle, voir https://issues.gradle.org/browse/GRADLE-2795.

Pas sûr si IntelliJ le permet, mais une solution possible consiste à utiliser l’option de ligne de commande –gradle-user-home pour spécifier un répertoire Gradle différent, avec l’inconvénient de télécharger toutes les dépendances dans ce répertoire.

Ce problème contient d’autres solutions de contournement, bien que je n’aie essayé aucune de ces solutions.

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } 

‘jcenter’ doit garder!

Je ne sais pas comment aborder cela techniquement, mais vous pouvez le faire manuellement.

  1. Redémarrez votre ordinateur.
  2. Accédez au dossier de votre projet et recherchez le dossier .gradle .
  3. Entrez et supprimez le fichier cache.properties.lock
  4. Revenez et trouvez le dossier .gradle dans les utilisateurs pour la plate-forme Windows
  5. Allez dans le dossier caches et recherchez le dossier modules-2 , supprimez le fichier modules-2.lock .
  6. Démarrez votre Android Studio normalement

C’est ce que j’ai fait et ça marche pour moi. Peut-être que cela se produit lorsque vous forcez la fermeture du processus de génération afin qu’aucun autre processus ne puisse l’utiliser à nouveau jusqu’à ce que vous redémarriez.