maven Java 17中的多行字符串

slmsl1lt  于 11个月前  发布在  Maven
关注(0)|答案(2)|浏览(146)

我在java 17.0.2中使用多行字符串,但收到以下错误

String test = """
        {
            "deploymentResourceId": "deployment"
        }
        """;

字符串
错误代码:

/sparta/input/PackageResource.java:262:25: expecting SEMI, found '"
        {
            "'

2023-10-17 23:31:16.027 UTC [ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (verify-style-1) on project : Execution verify-style-1 of goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check failed: begin 1253, end 18, length 18 -> [Help 1]


使用字符串生成器工作正常,但我想使用多行字符串

8yoxcaq7

8yoxcaq71#

错误消息是由CheckStyle的过时版本产生的。
根据CheckStyle ticket Support for Java 15 Strings,如果您想将text blocks/多行字符串与CheckStyle检查一起使用,则至少需要CheckStyle版本8.36。
错误消息(org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check)表示您的项目使用Maven-CheckStyle-Plugin版本2.17,根据Maven Checkstyle Plugin Releases History默认使用CheckStyle版本6.11.2
您可以尝试使用以下配置(源代码:Upgrading Checkstyle at Runtime)将您的项目配置为使用Maven CheckStyle Plugin 2.17和CheckStyle 8.36版本:

<project>
  ...
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>2.17</version>
          <dependencies>
            <dependency>
              <groupId>com.puppycrawl.tools</groupId>
              <artifactId>checkstyle</artifactId>
              <version>8.36</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  ...
</project>

字符串

bvuwiixz

bvuwiixz2#

升级maven-checkstyle-plugincheckstyle解决了问题:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>3.3.0</version>
  <dependencies>
    <dependency>
      <groupId>com.puppycrawl.tools</groupId>
      <artifactId>checkstyle</artifactId>
      <version>10.12.1</version>
    </dependency>
  </dependencies>
</plugin>

字符串

相关问题