我在JAXB中使用globalBindings来生成Serializable类。
<jaxb:globalBindings>
<xjc:simple />
<xjc:serializable uid="1" />
</jaxb:globalBindings>
uid属性在java类中生成如下:
private final static long serialVersionUID = 1L;
我理解&#34;最终的静态&#34;和#34;静态决赛&#34;是相同的,也可以编译生成的可序列化类。但是我们从SonarQube那里得到了使用&#34;最终静态&#34;而不是&#34;静态最终&#34;。
我们目前正在手动将属性更改为&#34; static final&#34;绕过SonarQube问题。但是,任何人都可以建议是否有可能让JAXB生成&#34;静态最终&#34;代替?
我们正在使用JAXB2,这是pom.xml。
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.3.1</version>
<dependencies>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.8.1</version>
</dependency>
</dependencies>
<execution>
<id>someID</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<sources>
<source>${project.basedir}/src/main/resources/some.xsd</source>
</sources>
<xjbSources>
<xjbSource>src/main/resources/some.xjb</xjbSource>
</xjbSources>
</configuration>
</execution>
答案 0 :(得分:0)
从我的角度来看,检查生成的代码并不合理。
如果SonarQube抱怨private final static
而不是private static final
,请忽略它。这没关系,特别是在生成的代码中没有。
现在,要回答您的问题 - 您可以编写一个XJC插件,它会生成static final
。这里有一个article。您可以在JAXB2 Basics中找到更多示例。
免责声明:我是JAXB2 Basics的作者,这是一个XJC插件包。