2010-08-08 5 views
7

Как я могу создать задачу Ant для компиляции форм GUI (XML) в Intellij IDEA? Я использую Scala и Java в своем проекте. Java только для GUI-класса, и я создаю его с помощью Intellij IDEA UI Designer.Задача Ant для компиляции форм GUI (Intellij IDEA)

+0

Как бы вы это из окна CMD.exe? –

+0

Я не использую окна, но я не знаю. – barroco

ответ

5

IDEA предоставляет задачу Ant, javac2, которая делает это. Это замена для стандартной задачи javac Ant.

Во-первых, вам нужно включить что-то вроде следующего в верхней части файла сборки 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"/> 

Здесь "$ {idea.dir}" относится к каталогу установки IDEA. Эти банки могут быть перераспределяемы, поэтому вы можете скопировать их в свой проект, если хотите, и обратиться к ним. Как только вы это сделаете, просто замените любые вызовы на «javac» с помощью «javac2», и все должно работать.

Для компиляции scala, конечно, вам понадобятся вызовы либо для скаляра, либо для fsc, но все это не затрагивается.

+0

Ant показать мне: "/My/project/path/build.xml:16: taskdef класс com.intellij.ant.Javac2 не может быть найден", почему? – barroco

+1

Я меняю «redist» на «lib», а затем Ant не показывать мне эту ошибку. Теперь, Ant показать мне эту ошибку: /My/project/path/build.xml:16: taskdef Класс, необходимый классу com.intellij.ant.Javac2 не найден: org/objectweb/asm/ClassVisitor – barroco

+0

Хм, выглядит как вам нужно добавить также. Не знаете, почему вы баны в lib, а не redist. Community Edition, возможно? –

2

Такая же проблема здесь. решаемые таким образом:

<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

В моем компилировании.classpath мне также пришлось добавить следующее: vrutberg

1

Поскольку это происходит на Google, вот что нужно:

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

Ключ ASM и ASM-все, что решает ClassReader и ClassWriter ошибки. Мне пришлось заглянуть в банки, чтобы это выяснить. «javac2.home» будет зависимым от ОС. Это на Intellij Ultimate.

1

Вот правильный путь:

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

работает как для IntelliJ сообщества и Ultimate. Протестировано в обоих. Просто измените его на свой путь к сообществу Intellij, поэтому, например, «IntelliJ IDEA Community Edition 14.1.4».

+0

Собственно, посмотрите на ответ Мартина Пфеффера ниже для лучшего/нестрогообразного способа установки свойства javac2.home.Несмотря на то, что ваш подход работает, убедитесь, что IDE делает это для вас, как лучший маршрут. –

9

Пожалуйста, не бейте меня, но после установки «Создать Ant Build'-диалог, как:

enter image description here

исчезли ошибки:

enter image description here

+0

Благодарим за сообщение/обмен! Попытался выяснить, почему мое свойство $ {idea.home} не было установлено и показано как ошибка в сгенерированном файле скрипта сборки Ant. Удивительно, сколько горя может вызвать один флажок. –

+0

хорошо, это сработало для меня, спасибо большое –

Смежные вопросы