2010-08-08 28 views
7

¿Cómo puedo crear una tarea Ant para compilar formularios GUI (XML) en Intellij IDEA? Uso Scala y Java en mi proyecto. Java solo para la clase de GUI, y lo creo con Intellij IDEA UI Designer.Tarea Ant para compilar formularios GUI (Intellij IDEA)

+0

¿cómo hacerlo desde una ventana de CMD.exe? –

+0

No uso ventanas, pero no sé. – barroco

Respuesta

5

IDEA proporciona una tarea Ant, javac2, que hace esto. Es un reemplazo directo para la tarea javac Ant estándar.

En primer lugar, deberá incluir algo como lo siguiente cerca de la parte superior de su archivo de compilación 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"/> 

Aquí "$ {idea.dir}" hace referencia al directorio de la instalación de IDEA. Esos frascos son redistribuibles, por lo que puedes copiarlos en tu proyecto si lo deseas y consultarlos allí. Una vez que hayas hecho eso, simplemente reemplaza cualquier llamada a las tareas "javac" con "javac2", y todo debería funcionar.

Para compilar scala, por supuesto, necesitará llamadas a scalac o fsc, pero eso no se ve afectado por todo esto.

+0

Ant muéstrame: "/My/project/path/build.xml:16: taskdef class com.intellij.ant.Javac2 no se puede encontrar", ¿por qué? – barroco

+1

Cambio "redist" por "lib" y Ant no me muestra estos errores. Ahora, Ant muéstrame este error: /My/project/path/build.xml:16: taskdef No se encuentra una clase necesaria para la clase com.intellij.ant.Javac2: org/objectweb/asm/ClassVisitor – barroco

+0

Hmm, parece como usted necesita agregar también. No estoy seguro de por qué los frascos están en lib en lugar de redistribuir. Edición de la comunidad, posiblemente? –

2

Mismo problema aquí. resuelto este modo:

<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

En mi compile.classpath también tuve que agregar esto: vrutberg

1

Dado que este aparece en Google, esto es lo que se necesita:

<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 clave es asm asm-y todo lo que resuelve los errores ClassReader y ClassWriter. Tuve que mirar en los frascos para descubrirlo. "javac2.home" dependerá del sistema operativo. Esto está en Intellij Ultimate.

1

Aquí es la forma correcta:

<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> 

funciona tanto para la Comunidad IntelliJ y Ultimate. Probado en ambos. Simplemente cámbielo a su ruta de comunidad Intellij, por lo que "IntelliJ IDEA Community Edition 14.1.4", por ejemplo.

+0

En realidad, fíjate en la respuesta de Martin Pfeffer a continuación para una forma mejor/no codificada de configurar la propiedad 'javac2.home'.Si bien su enfoque funciona, hacer que el IDE lo haga por usted parece ser una mejor ruta para seguir. –

9

favor, no me golpearon, pero después de ajustar la 'Generar Ant Build'-diálogo como:

enter image description here

se han ido los errores:

enter image description here

+0

¡Gracias por publicar/compartir esto! Estaba intentando averiguar por qué mi propiedad $ {idea.home} no se estaba configurando y se mostraba como un error en el archivo de script de compilación generado. Increíble cuánto dolor puede causar una sola casilla de verificación. –

+0

bueno, esto funcionó para mí muchas gracias –