【问题标题】:Generated code not taken into account in maven compile processmaven 编译过程中未考虑生成的代码
【发布时间】:2011-10-21 23:07:08
【问题描述】:

我有一个 Maven 项目在编译过程中从注释处理器生成一个新类。类在/target/generated-sources/annotations/中生成成功,但是没有编译到.jar中。为什么?

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>${project.build.source}</source>
        <target>${project.build.target}</target>
        <encoding>${project.build.sourceEncoding}</encoding>
        <compilerArgument>-Xlint</compilerArgument>
        <annotationProcessors>
                <annotationProcessor>net.preprocessing.MyAnnotationProcessor</annotationProcessor>
        </annotationProcessors>
    </configuration>
</plugin>

编辑

这似乎是一个已知的bug。如果有人有可操作的解决方法,欢迎提出。

编辑 2

我昨天进行了一些测试,但工单中建议的解决方法不起作用。我提供了一个测试用例。如果有人对如何解决此问题有见解,欢迎提出。请记住,我是注释处理的新手,所以我可能缺少一些明显的东西。

【问题讨论】:

    标签: java generated-code maven-compiler-plugin


    【解决方案1】:

    看来您所做的只是编译类而不是构建 jar。 您需要使用Maven Jar Plugin 这是usage example

    【讨论】:

    • 一个 jar 作为进程的一部分被构建,但它不包含生成的代码。
    • 你能分享你的项目结构/树吗? Maven 项目结构应该是标准的,所以应该没有问题。
    • 您使用哪个插件生成类?你能举个例子吗?此外,JIRE Ticket 描述 (build-helper-plugin) 中给出了该问题的解决方法
    • @khmarbaise 请参阅download.oracle.com/javase/6/docs/technotes/tools/solaris/…,您不使用插件来生成类。处理器做到了。我已经尝试了解决方法,但它不起作用。我把我的发现和一个测试用例放在了票中。
    【解决方案2】:

    我建议使用 ma​​ven-processor-plugin 而不是传递给 maven 编译器的“annotationProcessor”参数。

    根据我的阅读,compilerArgumens 似乎存在一些问题,当您使用 maven-processor-plugin 时这些问题都已解决。

    您可以在此处找到有关 maven-processor-plugin 的更多信息:http://maven-annotation-plugin.googlecode.com/svn/docs/usage.html

    这是一个处理器插件如何替换 compilerArguments 的示例(该示例使用 Hibernate 元模型生成器,但对于所有类型的注释处理器来说这看起来都差不多...):http://relation.to/Bloggers/HibernateStaticMetamodelGeneratorAnnotationProcessor

    【讨论】:

    • Hibernate 示例/解决方法做到了。我只需要将目录更新为我生成的源。非常感谢!!!
    猜你喜欢
    • 2015-12-13
    • 2022-01-04
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 2015-07-05
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多