【问题标题】:Javadoc error on @RequiredArgsConstructor(onConstructor=@__(@Inject))@RequiredArgsConstructor(onConstructor=@__(@Inject)) 上的 Javadoc 错误
【发布时间】:2016-05-31 11:36:34
【问题描述】:

我正在尝试使用 JDK 8 为使用 lombok 的一堆代码生成 javadoc。

我收到以下错误:

error: cannot find symbol
[ERROR] @RequiredArgsConstructor(onConstructor=@__(@Inject))
[ERROR] ^
[ERROR] symbol: class __

任何关于如何解决上述错误的建议将不胜感激。

更新:使用如下配置的 maven javadoc 插件发生错误:

        <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.10.3</version>
            <!--
            <configuration>
                <doclet>ch.raffael.doclets.pegdown.PegdownDoclet</doclet>
                <docletArtifact>
                    <groupId>ch.raffael.pegdown-doclet</groupId>
                    <artifactId>pegdown-doclet</artifactId>
                    <version>1.1.1</version>
                </docletArtifact>
                <useStandardDocletOptions>true</useStandardDocletOptions>
            </configuration>
            -->
        </plugin>

【问题讨论】:

  • 这不是重复的,因为它发生在 Maven 下。原票是 IntelliJ 的
  • 对于像我这样正在寻找解决方案的人:我在stackoverflow.com/questions/11329965/…找到了解决方案
  • 此 Q 与“重复”Q 完全无关,并且被错误标记。

标签: java lombok


【解决方案1】:

我遇到了同样的问题,通过以下方式解决:

  1. lombok-maven-plugin配置为

    1. Delombok 将类放到target/delombok 目录中
    2. 不要将addOutputDirectory 指向编译器源路径
  2. 配置maven-javadoc-plugin 以查看target/delombok 目录

这个similar question也有很好的解释

另外,请记住 onConstructor 是一个实验性功能,对于 jdk8,您应该使用 (onConstructor_ = @Autowired) 而不是 jdk7 样式的 onConstructor = @__(@Autowired)

这是我的完整配置:

<plugin>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok-maven-plugin</artifactId>
    <version>${lombok-maven-plugin-version}</version>
    <executions>
        <execution>
            <phase>generate-sources</phase>
            <goals>
                 <goal>delombok</goal>
            </goals>
            <configuration>
                <addOutputDirectory>false</addOutputDirectory>
                <sourceDirectory>src/main/java</sourceDirectory>
                <outputDirectory>
                     ${project.build.directory}/delombok
                </outputDirectory>
            </configuration>
       </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>${maven-javadoc-plugin-version}</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <sourcepath>target/generated-sources/delombok</sourcepath>
    </configuration>
</plugin>

【讨论】:

  • 你在哪里找到那个配置文件?
【解决方案2】:

在这里添加只是为了将来参考,因为我试图在 Intelij 上构建,错误是由于编译器注释处理器被禁用。

要启用它,请转到 Intelij 首选项,打开 “构建、执行、部署” -> “编译器” -> “注释处理器” em> 并确保 “启用注释处理” 已启用

【讨论】:

    猜你喜欢
    • 2020-01-09
    • 1970-01-01
    • 2016-11-27
    • 2021-05-18
    • 1970-01-01
    • 2015-12-16
    • 2013-08-04
    • 2018-12-10
    • 2011-06-20
    相关资源
    最近更新 更多