我有一个类,如下所示:
@Data
@Builder
public class Foo {
private String param;
/** My custom builder.*/
public static FooBuilder builder(String _param){
return builder().param(_param);
}
}
我得到以下错误:
[错误]无法执行目标组织。阿帕奇。专家插件:maven javadoc插件:2.10。4:project foo上的javadoc(默认cli):JavaDocs报告生成中发生错误:
[错误]退出代码:1-/home/workspace/foo/src/main/java/com/foo/foo。java:34:错误:找不到symbol
[error]公共静态FooBuilder生成器(字符串参数)
[error]^
[error]符号:类FooBuilder
[error]位置:类Foo
使现代化
如果您使用maven javadoc插件3.2。0您可以这样配置它:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<doclint>none</doclint>
</configuration>
</plugin>
doclint
配置将使javadoc插件不再抛出错误。它还将禁用lint,但如果您同意,这可能是代替delombok的最佳方式。
如果您使用任何CI工具来构建和编译您的项目,您可以创建一个单独的作业来检查javadoc lint。
对我来说,在构建中禁用lint并不是一件坏事。Javadoc很重要,但不应该因为我在使用Lombok而阻止我构建应用程序。
为了解决这个问题,我必须使用Lombok的delombok
特性(参见:https://projectlombok.org/features/delombok)。
lombok不包括所有工具。例如,lombok无法插入javadoc。。。在java源代码上运行。Delombok仍然允许您通过将java代码预处理为java代码并应用lombok的所有转换,将lombok与这些工具一起使用。
我通过添加以下插件使用Maven做到了这一点:
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.0.0</version>
<configuration>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<outputDirectory>${delombok.output}</outputDirectory>
<addOutputDirectory>false</addOutputDirectory>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>delombok</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<configuration>
<sourcepath>${delombok.output}</sourcepath>
</configuration>
</plugin>
Lombok实际上能够填充一个部分定义的构建器类,因此您可以声明足够多的构建器,以使Javadoc满意,并将其保留。不需要去德隆博克。
在这种情况下,以下几点对我起了作用:
@Data
@Builder
public class Foo {
private String param;
/** My custom builder.*/
public static FooBuilder builder(String _param){
return builder().param(_param);
}
public static class FooBuilder {}
}
旁注:您实际上可以使用此技术添加一些customer builder方法,因此它具有额外的功能。当我有集合时,我喜欢重载构建器方法,以便一次只能加载一个项。可能已经有一些技术可以做到这一点,但很高兴知道您可以手动改进构建器。
我试图在Android Studio中使用Doclava为Android库生成Javadoc。源代码在某些时候使用了“Nullable”标记,这会在生成javadoc时导致崩溃: 在doclet类com中。谷歌。多克拉瓦。Doclava,方法start引发了一个异常java。朗。反思。调用TargetException com。太阳工具。javac。密码Symbol$CompletionFailu
我想有一种简单的方法来构建测试数据,并发现生成器模式非常适合这里描述的情况。然而,为了减少组件测试中的样板代码,甚至更多,我发现来自龙目岛项目的@Builder是一个很好的候选人。然而,我找不到任何关于如何在方法上使用它的留档或在线示例。我想在某种工厂方法上使用,因为我不能对实现进行任何更改。 有人能举例说明如何在方法上实际使用?
问题内容: 我第一次使用Project Lombok,运行构建时通过maven编译项目时遇到问题,我收到错误,其中调用了用Project Lombok注释进行注释的方法。 这是带注释的参数: 例如,在此行中,maven破坏了构建: 这是我的Maven依赖 Maven错误: 我正在使用Java 8 问题答案: 我已经将lombok降级到1.14.8,该版本可与Maven构建一起使用,但我还没有找到为
我正在创建一个程序,用户(教师)在其中输入一组百分比分数,并对这些分数进行分析,输出框打印出平均值、最小值/最大值、范围和“R级”、“1级”、“2级”等分数。 我面临的问题是将分数分为不同级别的方法。当我尝试将数组返回到main方法,并尝试将其打印到输出时,我得到了一个数组错误,即“找不到符号” 因此,当我使用主方法打印所有信息时,我应该将levelCount数组放入另一个数组中,我做到了。以下是
错误是 项目和模块SDK都是Java11。龙目岛版本为1.18.2: maven编译器安装程序: null
我试图将Stripe Java库与JSP Java servlets一起使用。 我已经将以下库导入servlet AcceptPaymentRequest.java中: 我的pom.xml如下: 找不到符号:class APIException位置:package com.stripe.exception 任何帮助都很感激。