Jak mogę utworzyć zadanie Ant, aby skompilować formularze GUI (XML) w Intellij IDEA? Używam Scali i Java w moim projekcie. Java tylko dla klasy GUI, a ja tworzę ją za pomocą Intellij IDEA UI Designer.Zadanie AN do kompilowania formularzy GUI (Intellij IDEA)
Odpowiedz
IDEA dostarcza zadanie Ant, javac2, które to robi. Jest zamiennikiem standardowego zadania javac Ant.
Po pierwsze, musisz dodać coś podobnego do poniższego w górnej części pliku budowy 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"/>
Tutaj "$ {idea.dir}" odnosi się do katalogu instalacji pomysł. Te słoiki można redystrybuować, więc możesz je skopiować do projektu, jeśli chcesz, i tam je tam odnieść. Kiedy już to zrobisz, po prostu zamień wszystkie wywołania na zadania "javac" na "javac2", a wszystko powinno po prostu działać.
Aby skompilować scalę, będziesz potrzebować wywołania skalac lub fsc, ale na to wszystko nie ma wpływu.
Ant pokaż mi: "/My/project/path/build.xml:16: taskdef class com.intellij.ant.Javac2 nie można znaleźć", dlaczego? – barroco
Zmieniam "redist" według "lib", a następnie Ant nie pokazuję mi tego błędu. Ant pokazuje mi ten błąd: /My/project/path/build.xml:16: taskdef Nie można znaleźć klasy wymaganej przez klasę com.intellij.ant.Javac2: org/objectweb/asm/ClassVisitor – barroco
Hmm, wygląda tak jak musisz dodać
Ten sam problem tutaj. rozwiązana w ten sposób:
<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"/>
W moim compile.classpath miałem też dodać to:
Ponieważ ta pojawia się w Google, tutaj jest to, co jest potrzebne:
<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>
Kluczem jest asm i ASM-wszystko, co rozwiązuje ClassReader i ClassWriter błędów. Musiałem zajrzeć do słoików, żeby to odkryć. "javac2.home" będzie zależny od systemu operacyjnego. To dotyczy Intellij Ultimate.
Oto poprawny sposób:
<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>
działa zarówno IntelliJ Wspólnoty i Ultimate. Testowane w obu. Po prostu zmień go na ścieżkę społeczności Intellij, tak na przykład "IntelliJ IDEA Community Edition 14.1.4".
rzeczywistości, spojrzeć na odpowiedź Martina Pfeffer za poniżej dla lepszego/nieskasowanego sposobu ustawiania właściwości "javac2.home".Chociaż twoje podejście działa, niech IDE zrobi to za Ciebie, wydaje się lepszą drogą do przejścia. –
Dziękujemy za opublikowanie/udostępnienie tego! Próbowałem dowiedzieć się, dlaczego moja właściwość $ {idea.home} nie została ustawiona i pokazywana jako błąd w wygenerowanym pliku skryptu ant build. Zdumiewające, ile bólu może spowodować pojedyncze pole wyboru. –
cóż, to działało dla mnie bardzo dziękuję –
Jak byś zrobił to z okna CMD.exe? –
Nie używam okien, ale nie wiem. – barroco