maven checkstyle插件报错

简介: 问题:checkstyle插件报错 Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Cannot set property 'file' to 'checkstyle-suppressions.

问题:
checkstyle插件报错

详情:
我在研究docker-maven-plugin插件源码,执行
mvn clean package
报错:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (validate) on project docker-maven-plugin: Failed during checkstyle configuration: cannot initialize module SuppressionFilter - Cannot set property 'file' to 'checkstyle-suppressions.xml' in module SuppressionFilter: InvocationTargetException: Unable to find: checkstyle-suppressions.xml: http://www.puppycrawl.com/dtds/suppressions_1_0.dtd -> [Help 1]

配置:

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

排查:
添加参数再次执行
mvn clean package -e -X
有如下
Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Cannot set property 'file' to 'checkstyle-suppressions.xml' in module SuppressionFilter

    at com.puppycrawl.tools.checkstyle.api.AutomaticBean.tryCopyProperty(AutomaticBean.java:178)
    at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(AutomaticBean.java:130)
    at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:163)
    ... 25 more

Caused by: java.lang.reflect.InvocationTargetException

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:2116)
    at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:2097)
    at org.apache.commons.beanutils.BeanUtilsBean.copyProperty(BeanUtilsBean.java:435)
    at com.puppycrawl.tools.checkstyle.api.AutomaticBean.tryCopyProperty(AutomaticBean.java:168)
    ... 27 more

Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: Unable to find: checkstyle-suppressions.xml

    at com.puppycrawl.tools.checkstyle.filters.SuppressionsLoader.loadSuppressions(SuppressionsLoader.java:147)
    at com.puppycrawl.tools.checkstyle.filters.SuppressionsLoader.loadSuppressions(SuppressionsLoader.java:127)
    at com.puppycrawl.tools.checkstyle.filters.SuppressionFilter.setFile(SuppressionFilter.java:50)
    ... 35 more

Caused by: java.io.FileNotFoundException: http://www.puppycrawl.com/dtds/suppressions_1_0.dtd

    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1872)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
    at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
    at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
    at org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown Source)
    at org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

文件http://www.puppycrawl.com/dtds/suppressions_1_0.dtd未找到
网站:http://www.puppycrawl.com
06EE02CF3A82444B9F37C0765AAAD652

解决方式:
1.找Oliver Bum要一个suppressions_1_0.dtd
2.删除checkstyle-suppressions.xml文件(会报错)
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (validate) on project docker-maven-plugin: Failed during checkstyle configuration: cannot initialize module SuppressionFilter - Cannot set property 'file' to 'checkstyle-suppressions.xml' in module SuppressionFilter: InvocationTargetException: Unable to find: checkstyle-suppressions.xml -> [Help 1]
3.自己写一个,如果知道内容可以自己写一个
例如:
修改前:
<?xml version="1.0" encoding="UTF-8"?>
/p>

"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">



修改后:
文件:checkstyle-suppressions.xml
<?xml version="1.0" encoding="UTF-8"?>




增加文件:suppressions.dtd





相关文章
|
15天前
|
缓存 IDE Java
maven install报错原因揭秘:‘parent.relativePath‘指向错误的本地POM文件
在使用Maven构建项目时,遇到&#39;parent.relativePath&#39;错误通常是由于父项目POM路径设置错误、版本不一致或内容不匹配导致的。解决方法包括:校正父项目POM的相对路径、确保版本一致、保持POM文件内容同步,并排查其他潜在问题,如子模块命名冲突和Maven缓存问题。通过这些步骤可解决该错误,避免项目构建失败。
maven install报错原因揭秘:‘parent.relativePath‘指向错误的本地POM文件
|
1月前
|
Java Maven
SpringBoot项目的用maven插件打包报Test错误
SpringBoot项目的用maven插件打包报Test错误
|
1月前
|
Java Maven
Maven配置以及IDEA设置(Cannot resolve plugin org.apache.maven.plugins:报错)
Maven配置以及IDEA设置(Cannot resolve plugin org.apache.maven.plugins:报错)
102 1
|
3天前
|
Java 测试技术 Maven
Maven 插件
Maven的三个核心生命周期:clean(清理)、default(构建)、site(站点生成)。每个生命周期包含一系列阶段,如mvn clean执行clean阶段,实现在maven-clean-plugin中。Maven是插件驱动的,插件负责具体任务,如jar/war打包、编译、测试和文档生成。通过`mvn plugin-name:goal-name`调用插件目标。
|
11天前
|
Java 测试技术 Maven
Maven 插件
Maven包含clean、default(build)、site三大生命周期,各含一系列阶段,如mvn clean执行Clean生命周期的clean阶段,实现在maven-clean-plugin中。Maven是插件驱动的框架,用于生成jar/war、编译、测试、文档等。插件通过`mvn [plugin-name]:[goal-name]`命令执行特定任务。
|
9天前
|
Java 测试技术 Maven
Maven 插件
Maven包含clean、default(build)、site三大生命周期,每个周期由多个阶段组成,充当标准化接口。插件如maven-clean-plugin实现具体阶段,如`mvn clean`。Maven是个插件驱动框架,用于生成jar/war、编译、测试、文档创建等。通过`mvn plugin-name:goal-name`执行插件目标。
|
18天前
|
Java 测试技术 Maven
Maven 插件
Maven插件负责实现生命周期的各个阶段,如clean、default(build)和site。生命周期中的每个阶段都是一个接口,具体实现由对应的Maven插件完成,例如`maven-clean-plugin`实现`clean`阶段。Maven本质上是一个依赖于插件执行的框架,插件用于生成jar/war、编译代码、运行单元测试、生成文档和报告。通过`mvn [plugin-name]:[goal-name]`命令执行插件目标。
|
14天前
|
Java 测试技术 Maven
Maven 插件
Maven拥有clean、default(build)和site三个生命周期,分别对应项目清理、部署和文档创建。每个生命周期包含多个阶段,这些阶段由不同插件实现。例如,`mvn clean`调用的是Clean生命周期的clean阶段,实际工作由maven-clean-plugin完成。Maven是一个依赖插件的框架,插件负责执行具体任务,如创建jar/war文件、编译代码、运行单元测试、生成文档和报告。通过`mvn [plugin-name]:[goal-name]`命令执行插件目标,如`mvn maven-compiler-plugin:compile`用于编译Java工程。
|
16天前
|
Java 测试技术 Maven
Maven 插件
Maven拥有clean、default(build)和site三个生命周期,分别对应项目清理、部署和文档创建。每个生命周期包含多个阶段,这些阶段由不同插件实现,如`mvn clean`实际上是调用`maven-clean-plugin`。Maven是一个依赖插件执行的框架,插件负责任务如创建jar/war、编译、测试、文档生成和报告创建。通过`mvn [plugin-name]:[goal-name]`执行插件目标,如`mvn maven-compiler-plugin:compile`用于编译Java代码。
|
1天前
|
Java 测试技术 Maven
Maven 插件
Maven包含clean(清理)、default(构建)、site三大生命周期,每个周期有一系列阶段,如mvn clean执行Clean生命周期的clean阶段。实际工作由插件完成,如maven-clean-plugin负责清理。Maven是插件驱动的框架,用于生成jar/war、编译、测试、文档等。插件目标通过`mvn plugin-name:goal-name`执行。

推荐镜像

更多