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.
.gradle
. cache.properties.lock
.gradle
dans les utilisateurs pour la plate-forme Windows caches
et recherchez le dossier modules-2
, supprimez le fichier modules-2.lock
. 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.