2016-12-10 3 views
0

Первый проект maven содержит источники с аннотированными классами.Обработка аннотаций из java-файлов без компиляции

Второй проект maven содержит обработчик аннотации (javax.annotation.processing.AbstractProcessor).

Я хотел бы, чтобы второй проект во время компиляции обрабатывал исходные тексты (аннотированные) первого проекта и делал некоторые вещи.

Как подойти к нему?

Я предполагаю, аннотации процессора не правильный выбор, как это требуется, чтобы быть ограниченно к компилятору ...

Другого варианта для сканирования всех файлов Java в первом проекте, загрузите их (с Class.forName) и обработать аннотацию.

Можете ли вы предложить что-то еще?

+0

Не знаете, как это помогло бы в моем случае, когда я использую аннотации процессора – Tirmean

ответ

0

Вы можете указать аргумент командной строки -proc:only, чтобы избежать компиляции - файлы .class будут выводиться.

The javac documentation говорит:

-proc: [нет, только]

Управляет не делается обработка аннотаций и компиляции. -proc:none означает, что компиляция выполняется без обработки аннотаций. -proc:only означает, что обрабатывается только обработка аннотаций, без последующей компиляции.

+0

Во-первых, это Maven (Но я могу поставить этот параметр в Maven компилятор плагинов), но проблема в том, что мне нужно работать на источниках другой проект. И я не хочу перекомпилировать эти источники. – Tirmean

+0

'proc: none' не выполняет компиляцию - он не создает файлы' .class'. Если вы имеете в виду что-то другое путем «компиляции», это может помочь другим прояснить вопрос. Благодаря! – mernst

+0

Второй проект maven имеет java-файлы, которые я хочу скомпилировать. Я хочу генерировать источники на основе аннотированных java-файлов в первом проекте maven, эти сгенерированные источники также должны быть скомпилированы внутри второго проекта. – Tirmean

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