使用maven-compiler-plugin进行Maven注释处理

时间:2011-02-09 04:38:41

标签: maven-2 annotations

我尝试编译包含生成源代码的注释的代码。我使用maven-compiler-pluginbuild-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 个答案:

答案 0 :(得分:1)

发布2.0.7-SNAPSHOT的maven-annotation-plugin应该可以解决问题

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您可以尝试使用最新版本的maven编译器插件(2.3.2)吗?

此外,build-helper-maven-plugin不是必需的,因为看起来您正在使用maven-compiler-plugin本身来从注释生成源。