2009-01-06 7 views
8

Je veux développer une application web (pas de frameworks) mélangeant java et groovy. J'utilise l'IDE Netbeans avec le plugin. Si je démarre un nouveau projet Java SE et ajoute une classe groovy, cela fonctionne sans problèmes .. mais quand je crée un nouveau projet java EE et ajoute une classe groovy il ne peut pas compiler et me montre l'erreur suivante :Groovy, Netbeans et Java EE

/home/webcodei/NetBeansProjects/testeGroovyWeb/src/java/pacote/Hello.java:23: cannot find symbol 

symbol : class Hroovy 
location: class pacote.Hello 
      Hroovy h = new Hroovy(); 
/home/webcodei/NetBeansProjects/testeGroovyWeb/src/java/pacote/Hello.java:23: cannot find symbol 
symbol : class Hroovy 
location: class pacote.Hello 
      Hroovy h = new Hroovy(); 
2 errors 
/home/webcodei/NetBeansProjects/testeGroovyWeb/nbproject/build-impl.xml:383: The following error   occurred while executing this line: 
/home/webcodei/NetBeansProjects/testeGroovyWeb/nbproject/build-impl.xml:211: Compile failed; see  the compiler error output for details. 
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos) 

Est-ce que quelqu'un a une idée de comment puis-je activer Java EE + Groovy dans NetBeans?

ps: Je sais que l'existence de Grails

ps2: Le pot Groovy est dans mon classpath.

Merci pour tout!

Répondre

5

Il semble que le gestionnaire de projet NetBeans 6.5 Java Webapp ne dispose pas du support «Enable Groovy» présent dans les projets de bibliothèque Java App et Java Class.

je peux penser à deux façons dont vous pourriez contourner cela:

D'abord, vous pouvez mettre votre code Groovy et des tests dans un projet distinct en tant que bibliothèque de classe Java. Ensuite, rendez la webapp Java dépendante du projet Groovy. NetBeans construira le projet dépendant automatiquement de sorte que vous remarquerez à peine qu'ils sont dans des projets distincts. Deuxièmement, le "Enable Groovy" n'est pas magique. Tout ce qu'il fait est d'écrire un fichier groovy-build.xml dans/nbprojects et de modifier build-impl.xml pour l'importer. Le fichier groovy-build.xml remplace la macro "javac" par défaut pour appeler "groovyc" à la place. Si vous êtes à portée de main avec Ant, vous pouvez copier un fichier groovy-build.xml à partir d'un projet d'application Java et le copier dans votre projet Web Java, puis l'importer à partir de votre fichier build.xml (avant l'importation de build-impl.xml). Le fichier groovy-build.xml nécessitera probablement quelques modifications, car certaines propriétés entre une application web et une bibliothèque de classes sont un peu différentes.

5

@Dave Smith,

C'était exactement ce que j'ai fait. J'ai créé un projet javase et une webapp et j'ai commencé à les comparer. Après quelques minutes, j'ai réalisé que la seule différence était le groovy-build.xml.

Je copié le groovy-build.xml dans le répertoire, et inséré les lignes suivantes dans mon build.xml:

<import file="nbproject/groovy-build.xml"/> 

Juste avant la

régulière
<import file="nbproject/build-impl.xml"/> 

Et puis appelé fichier groovy pour remplacer le -init-macrodef-javac.

<target depends="-groovy-init-macrodef-javac" name="-pre-compile"> 

</target> 

J'ai aussi besoin de changer l'espace de noms de la groovy-build.xml à la mienne ex:

<macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2"> 

et inséré le j2ee classpath ($ {} j2ee.platform.classpath) à l'attribut quelques lignes plus tard:

<attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/> 

Ensuite, le projet a fonctionné avec succès!= D

Merci pour tout!

+0

Tout a bien fonctionné (merci!) Sauf une erreur lors de la compilation du projet web: "javac: indicateur invalide: $ {javac.compilerargs.jaxws}". Juste pour essayer, j'ai retiré cet indicateur supplémentaire dans le fichier groovy-build.xml et la compilation a réussi. Des alternatives à ce hack laid? –

+0

Souhaitez que quelqu'un vomisse un exemple groovy-build.xml afin que nous n'ayons pas à déranger l'installation Grails juste pour obtenir cela ... et je me demande si quelqu'un utilise même ce genre de choses, même une recherche sur Github pour "groovy-build" .xml "ne vient pas avec un exemple! – User