在我的Java JAX-RS接口方法签名中,Javadoc(通过Maven)给我提供以下错误:swagger-maven-plugin触发Javadoc警告:元素值必须是Java注释中的常量表达式(但它是!)
error: element value must be a constant expression
这里是我的JAX-RS接口:
public interface FooResource {
@Consumes(APPLICATION_FORM_URLENCODED_UTF_8)
public void bar();
}
Javdoc给出了错误@Consumes
。下面是定义APPLICATION_FORM_URLENCODED_UTF_8
,它出现在MyAppConstants
在同一个项目:
public static final String APPLICATION_FORM_URLENCODED_UTF_8 =
APPLICATION_FORM_URLENCODED + ";" + CHARSET_PARAMETER + "=UTF-8";
这里是APPLICATION_FORM_URLENCODED
的定义,它出现在javax.ws.rs.core.MediaType
:
public final static String APPLICATION_FORM_URLENCODED = "application/x-www-form-urlencoded";
这里是CHARSET_PARAMETER
定义,这也出现在javax.ws.rs.core.MediaType
:
public static final String CHARSET_PARAMETER = "charset";
现在我问你:APPLICATION_FORM_URLENCODED_UTF_8
在编译时不是常量?
错误消息并没有说我必须提供一个文字。它说我必须提供一个常数。那么这不是一个常数?
(我几乎可以发誓,这个工作在同一时间,但突然停止工作。)
更新:找到原因,但还是不明白。
由于某些原因,仅在POM中包含swagger-maven-plugin
会引发此问题!我的代码根本没有改变,但只要我添加下面的依赖项,突然我得到我现有的代码Javadoc警告!
<dependency>
<groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId>
<version>3.1.5</version>
</dependency>
单个依赖如何使Javadoc在代码文件上以不同方式工作? swagger-maven-plugin
在做什么?
确定'final'关键字仍然存在?没有它,类变量就会失去其不变的特征。 – Seelenvirtuose
你已经尝试过很好的'clean install'吗? –
是的,最终的关键字仍然存在。是的,我做了一个'mvn clean install'。 –