2010-05-27 3 views
2

J'ai installé spring-security-core dans un projet grails, mais pour une raison quelconque, IDEA n'a pas récupéré automatiquement les fichiers jar. Je peux déployer l'application et exécuter des tests en utilisant la ligne de commande grails juste très bien ... mais IDEA met toujours des lignes ondulées. Existe-t-il un moyen pour que IDEA récupère automatiquement les fichiers après avoir installé les plugins?Après avoir installé le plugin grails spring-security-core, comment informez-vous IDEA des fichiers jar?

Répondre

3

Je ne suis pas 100% quelle est la véritable source de ce problème. À ma connaissance, IntelliJ analyse le BuildConfig.groovy à l'intérieur des plugins pour configurer les dépendances. Il semble, qu'il ne pas ramasser les dependencies.groovy autogenerated. Le plugin spring-security-core empaqueté contient juste un dependencies.groovy et aucun BuildConfig.groovy.

J'ai ajouté l'extrait suivant à mon application de BuildConfig.groovy

dependencies { 
    compile('org.springframework.security:org.springframework.security.core:3.0.2.RELEASE') { 
     excludes 'com.springsource.org.aopalliance', 
       'com.springsource.org.apache.commons.logging', 
       'org.springframework.beans', 
       'org.springframework.context', 
       'org.springframework.core' 
    } 

    compile('org.springframework.security:org.springframework.security.web:3.0.2.RELEASE') { 
     excludes 'com.springsource.javax.servlet', 
       'com.springsource.org.aopalliance', 
       'com.springsource.org.apache.commons.logging', 
       'org.springframework.aop', 
       'org.springframework.beans', 
       'org.springframework.context', 
       'org.springframework.core', 
       'org.springframework.web' 
    } 
    // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg. 

    // runtime 'mysql:mysql-connector-java:5.1.5' 
} 

Avec cela, IntelliJ « sait » sur les pots de sécurité du printemps.

+0

Cette solution est géniale. Cela affecte tout le monde sur le projet en même temps. Tu gères! – egervari

+0

Je n'ai pas essayé, mais IntelliJ pourrait avoir corrigé cela dans leur dernier EAP. –

+0

Juste un suivi à ce sujet: dans IntelliJ 9.0.3 le hack ci-dessus n'est plus nécessaire. –

0
  1. Structure du projet Open Window
  2. dans Paramètres du projet choisissez Modules
  3. puis choisissez le module de plug-in. Il devrait être nommé « myproject-grailsPlugin »
  4. puis sélectionnez les dépendances de l'onglet
  5. A l'intérieur des modules dépendants, sélectionnez Grails User Library (si elle n'existe pas, créez-le avec Ajouter -> Bibliothèque mondiale)
  6. EDIT cette Dans la bibliothèque et dans la boîte de dialogue Configurer la bibliothèque de modules, choisissez "Joindre les répertoires JAR".
  7. Sélectionnez le répertoire lib du plugin spring-security-code. O fenêtres il doit être situé a: C: \ Utilisateurs \ myuser.grails \ 1.3.1 \ projets \ monprojet \ plugins \ printemps-security-core-0.3.1 \ lib

C'est tout!

+0

spring-security-core-0.3.1 ne possède pas lib/dir. –

0

pourquoi ne pas simplement faire un clic droit sur votre répertoire racine du projet et cliquez sur « synchroniser les dépendances Grails » ...

2

Le problème dans mon cas (9.0.2) était que les grailsPlugins n'ont bibliothèque Grails sur son chemin de classe . Donc, les dépendances de compilation ne fonctionneraient pas, et votre fix fabien est un peu verbeux :-)

IDEA a normalement un grand correctif d'erreur automatique (alt + enter) et il fonctionne dans ce cas. Il vous demandera de "Ajouter la bibliothèque utilisateur Grails à classpath". Fonctionne comme un charme, mais devrait biensur pas nécessaire

0

Il semble que IntelliJ 9.0.3 ne capte pas correctement les dépendances de plug-ins lorsque vous modifiez le répertoire du plugin autre chose autre que par défaut dans BuildConfig.groovy

grails.project.plugins.dir = "./plugins" //breaks plug-ins in intellij 

Les erreurs de classe non trouvée ont commencé à apparaître après la modification du répertoire du plugin. J'ai ajouté les dépendances des modules (à savoir spring-security-core et springcache) et maintenant intellij ajoute les dépendances jar à la 'bibliothèque utilisateur Grails' et je peux compiler mon application. L'utilisation de la ligne de commande n'a jamais eu de problème.

Voici ce que j'ai ajouté à BuildConfig pour springcache.

dependencies { 
//for spring-security-core 

// pour springcache compilation ("net.sf.ehcache: ehcache Web: 2.0.0") { exclut "ehcache-core" // ehcache-core est fourni par Grails

}

}

Questions connexes