2010-08-08 7 views

Odpowiedz

5

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.

+0

Ant pokaż mi: "/My/project/path/build.xml:16: taskdef class com.intellij.ant.Javac2 nie można znaleźć", dlaczego? – barroco

+1

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

+0

Hmm, wygląda tak jak musisz dodać . Nie wiem, dlaczego słoiki są w lib, a nie redystować. Wersja społecznościowa, być może? –

2

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"/> 
+0

W moim compile.classpath miałem też dodać to: vrutberg

1

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.

1

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

+0

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

9

Proszę mnie nie bić, ale po ustawieniu „Generowanie Ant Build'-dialog jak:

enter image description here

błędy zostaną usunięte:

enter image description here

+0

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

+0

cóż, to działało dla mnie bardzo dziękuję –