2016-08-17 3 views
0

У меня есть обработчик аннотации, который зависит от других библиотек, например. Гуава, палата общин. Я уже установил его с Eclipse и Maven. Однако я хочу использовать его с файлом сборки Apache Ant. Итак, я создал следующие целями:Настройка обработчика аннотации с зависимостями с использованием Apache Ant

<target name="compile.frontend" depends="compile.main"> 
    <mkdir dir="${target}target/frontend/classes" /> 
    <javac encoding="utf-8" destdir="${target}target/frontend/classes" debug="on" nowarn="true" source="1.6" target="1.6" optimize="on" includeantruntime="false"> 
     <src path="src/application/java"/> 
     <classpath> 
      <fileset dir="lib"> 
       <include name="main/*.jar" /> 
      </fileset> 
      <pathelement location="${target}target/main/classes" /> 
     </classpath> 
     <compilerarg line="-processorpath ${basedir}/lib/main/MyProcessor-1.0.jar;${basedir}/lib/main/javapoet-1.7.0.jar;${basedir}/lib/main/guava-17.0.jar;${basedir}/lib/main/commons-lang-2.6.jar"/> 
     <compilerarg line="-processor com.me.MyProcessor"/> 
     <compilerarg line="-s ${target}target/frontend/classes/"/> 
    </javac> 
</target> 

Я получаю ошибку является процессором сгенерированного класса I экземпляра отсутствует, «не может найти символ».

Зависимости, которые я добавил с помощью; "; разделенный список - это те же зависимости, которые я сделал Eclipse, используя процессор правильно. Я подозреваю в выходной папке <compilerarg line="-s..., так как когда я удаляю зависимость, то есть JavaPoet, я получаю «java.lang.NoClassDefFoundError» JavaPoet. Любое предложение?

ответ

0

Проблема была относительно некоторой директории исключения, используя exclude name под JAVAC линий:

<exclude name="**/folder_name/**"/> 

Там также нет необходимости добавлять compilerarg line S, как я сделал на оригинальный вопрос. Достаточно иметь libs в classpath.

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