Я пытаюсь скомпилировать свой код, содержащий аннотации, генерирующие исходный код. Я использую maven-compiler-plugin и build-helper-maven-plugin. Мой POM выглядит так:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <generatedSourcesDirectory>${project.build.directory}/generated-sources/apt</generatedSourcesDirectory>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.5</version>
            <executions>
                <execution>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>add-source</goal>
                    </goals>
                    <configuration>
                        <sources>
                            <source>${project.build.directory}/generated-sources/apt</source>
                        </sources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Когда я запускаю mvn compile, ${project.build.directory}/generated-sources/apt добавляется как исходный каталог, и сгенерированные источники создаются в правильном каталоге. Но я получаю ошибки компилятора из-за отсутствия ссылок на сгенерированные классы. Это похоже на то, что сгенерированный исходный каталог не включается в процесс компиляции.

Я также пробую apt-maven-plugin, который ничего не генерирует. И maven-annotation-plugin, но ведет себя так, как описано выше.

3
Sydney 9 Фев 2011 в 07:38

3 ответа

Лучший ответ

Можете ли вы попробовать последнюю версию плагина компилятора maven (2.3.2)?

Также build-helper-maven-plugin не требуется, поскольку похоже, что вы используете сам maven-compiler-plugin для генерации источников из аннотации.

0
Raghuram 9 Фев 2011 в 08:13
У меня была такая же проблема, он отлично работает с 2.3.2, есть "ложная ошибка" в определениях missing symbol, но это только на первом проходе для создания Metamodel
 – 
dcestari
24 Фев 2011 в 03:01

Fwiw Я только что понизил версию с 3.0 до 2.5.1 и исправил проблему, которую я наблюдал, когда обработка APT не выполнялась после нескольких запусков, используя maven, поэтому просто понизил одну версию:

http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.apache.maven.plugins%22%20AND%20a%3A%22maven-compiler-plugin%22

1
HaveAGuess 4 Янв 2013 в 04:22

Выпуск 2.0.7-SNAPSHOT maven-annotation-plugin должен решить проблему.

1
bsorrentino 30 Авг 2012 в 00:27