2010-08-08 8 views
7

Comment créer une tâche Ant pour compiler des formulaires GUI (XML) dans Intellij IDEA? J'utilise Scala et Java dans mon projet. Java uniquement pour la classe GUI, et je le crée avec Intellij IDEA UI Designer.Tâche Ant pour la compilation de formulaires GUI (Intellij IDEA)

+0

Comment feriez-vous -il d'une fenêtre CMD.exe? –

+0

Je n'utilise pas de fenêtres, mais je ne sais pas. – barroco

Répondre

5

IDEA fournit une tâche Ant, javac2, qui effectue cette opération. C'est un remplacement direct pour la tâche Ant javac standard. Tout d'abord, vous devez inclure quelque chose comme ce qui suit en haut de votre fichier de construction Ant.

<path id="javac2.class.path"> 
    <pathelement location="${idea.dir}/redist/forms_rt.jar"/> 
    <pathelement location="${idea.dir}/redist/javac2.jar"/> 
    <pathelement location="${idea.dir}/redist/annotations.jar"/> 
</path> 
<taskdef name="javac2" classname="com.intellij.ant.Javac2" classpathref="javac2.class.path"/> 

Ici, "$ {idea.dir}" fait référence au répertoire de votre installation IDEA. Ces pots sont redistribuables, vous pouvez donc les copier dans votre projet si vous le souhaitez, et vous y référer. Une fois que vous avez fait cela, remplacez simplement les appels aux tâches "javac" par "javac2", et tout devrait simplement fonctionner. Pour compiler scala, bien sûr, vous aurez besoin d'appels à scalac ou fsc, mais ceux-ci ne sont pas affectés par tout cela.

+0

Ant montrez-moi: "/Mon/project/path/build.xml:16: taskdef class com.intellij.ant.Javac2 est introuvable", pourquoi? – barroco

+1

Je change "redist" par "lib" puis Ant ne me montre pas ces erreurs. Maintenant, Ant montrez-moi cette erreur: /Mon/project/path/build.xml:16: taskdef Une classe nécessaire à la classe com.intellij.ant.Javac2 est introuvable: org/objectweb/asm/ClassVisitor – barroco

+0

Hmm, regarde comme vous devez ajouter ainsi. Je ne sais pas pourquoi les bocaux sont en liberté plutôt que redist. Community Edition, peut-être? –

2

Même problème ici. résolu ce problème ainsi:

<property name="idea.lib" value="C:\\Program Files (x86)\\JetBrains\\IntelliJ IDEA Community Edition 9.0.3\\lib"/> 

<path id="javac2.classpath"> 
    <pathelement location="${idea.lib}/javac2.jar"/> 
    <pathelement location="${idea.lib}/jdom.jar"/> 
    <pathelement location="${idea.lib}/asm.jar"/> 
    <pathelement location="${idea.lib}/asm-commons.jar"/> 
    <pathelement location="${idea.lib}/jgoodies-forms.jar"/> 
</path> 
<taskdef name="javac2" classname="com.intellij.ant.Javac2" classpathref="javac2.classpath"/> 
+0

Dans mon compile.classpath je devais aussi ajouter ceci: vrutberg

1

Depuis cela vient sur Google, voici ce qui est nécessaire:

<property name="javac2.home" value="${idea.home}/lib"/> 
<path id="javac2.classpath"> 
    <pathelement location="${javac2.home}/asm.jar"/> 
    <pathelement location="${javac2.home}/asm-all.jar"/> 
    <pathelement location="${javac2.home}/javac2.jar"/> 
    <pathelement location="${javac2.home}/jdom.jar"/> 
    <pathelement location="${javac2.home}/asm-commons.jar"/> 
    <pathelement location="${javac2.home}/jgoodies-forms.jar"/> 
</path> 

La clé est asm et asm-tout ce qui permet de résoudre les erreurs ClassReader et ClassWriter. J'ai dû regarder dans les bocaux pour découvrir ça. "javac2.home" sera dépendant du système d'exploitation. C'est sur Intellij Ultimate.

1

est ici la bonne façon:

<property name="javac2.home" value="C:\\Program Files (x86)\\JetBrains\\\IntelliJ IDEA 14.1.4\\lib"/> 
<path id="javac2.classpath"> 
     <pathelement location="${javac2.home}/asm.jar"/> 
     <pathelement location="${javac2.home}/asm-all.jar"/> 
     <pathelement location="${javac2.home}/javac2.jar"/> 
     <pathelement location="${javac2.home}/jdom.jar"/> 
     <pathelement location="${javac2.home}/asm-commons.jar"/> 
     <pathelement location="${javac2.home}/jgoodies-forms.jar"/> 
</path> 

Works pour les deux Intellij communautaire et ultime. Testé dans les deux. Modifiez-le simplement sur votre chemin d'accès à la communauté Intellij, par exemple "IntelliJ IDEA Community Edition 14.1.4".

+0

En fait, regardez la réponse de Martin Pfeffer ci-dessous pour une meilleure façon de définir la propriété 'javac2.home'.Alors que votre approche fonctionne, demandez à l'EDI de le faire pour vous, semble être une meilleure voie à suivre. –

9

S'il vous plaît ne pas me battre, mais après avoir réglé le « Générer Ant Build'-dialogue comme:

enter image description here

les erreurs ont disparu:

enter image description here

+0

Merci d'avoir posté ce commentaire! Essayait de comprendre pourquoi ma propriété $ {idea.home} n'était pas définie et s'affichait comme une erreur dans le fichier de script de génération ant généré. Incroyable combien de chagrin une seule case à cocher peut causer. –

+0

bien cela a fonctionné pour moi merci beaucoup –

Questions connexes