如何改变允许的缩进水平的注释数组初始化子Checkstyle?



在我工作的一个项目中,我们通过maven-checkstyle-plugin使用Checkstyle。我们也使用springdoc-openapi-ui,因此在控制器上我们使用@ApiReponses注释。它有一个相当复杂的语法,但它工作得很好,所以我在一个控制器上写了这样的东西:

@ApiResponses(value = {
@ApiResponse(description = "foo",
content = {
@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
schema = @Schema(implementation = UgyTableDataResponse.class)),
@Content(mediaType = MediaType.APPLICATION_XML_VALUE,
schema = @Schema(implementation = UgyTableDataResponse.class))
})
})

然而,@ApiResponse@Content注释都被Checkstyle标记为Checkstyle: '注释数组初始化'子节点有不正确的缩进级别12,预期级别应该是8。

我想改变Checkstyle设置,这样我就可以保持注释在这种易于阅读的格式。

我的checkstyle.xml的缩进设置是:

<module name="Indentation">
<property name="basicOffset" value="4"/>
<property name="braceAdjustment" value="0"/>
<property name="caseIndent" value="4"/>
<property name="throwsIndent" value="4"/>
<property name="lineWrappingIndentation" value="4"/>
<property name="arrayInitIndent" value="4"/>
</module>

插件在POM中的依赖关系是:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
</configuration>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>

您可以将配置中的arrayInitIndent选项更改为8(因为您的代码使用8个空格缩进),或者您可以将代码中的缩进级别更改为4。

@ApiResponses(value = {
@ApiResponse(description = "foo",
content = {
@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
schema = @Schema(implementation = UgyTableDataResponse.class)),
@Content(mediaType = MediaType.APPLICATION_XML_VALUE,
schema = @Schema(implementation = UgyTableDataResponse.class))
})
})

最新更新