【问题标题】:Maven annotation processing with maven-compiler-plugin使用 maven-compiler-plugin 处理 Maven 注释
【发布时间】:2011-02-09 04:38:40
【问题描述】:

我尝试编译包含生成源代码的注释的代码。我使用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,但它的行为如上所述。

【问题讨论】:

    标签: maven-2 annotations


    【解决方案1】:

    maven-annotation-plugin 的 2.0.7-SNAPSHOT 版本应该可以解决问题

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

        【解决方案3】:

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

        还不需要build-helper-maven-plugin,因为看起来您正在使用maven-compiler-plugin 本身从注释中生成源。

        【讨论】:

        • 我遇到了同样的问题,它适用于2.3.2,关于missing symbol 定义存在“错误错误”,但它只是在生成元模型的第一遍我>
        猜你喜欢
        • 2020-07-23
        • 2014-12-01
        • 2011-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-23
        • 1970-01-01
        相关资源
        最近更新 更多