[ https://issues.apache.org/jira/browse/MCHECKSTYLE-398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17575694#comment-17575694 ]
James commented on MCHECKSTYLE-398: ----------------------------------- Hi! This ticket is blocking https://issues.apache.org/jira/browse/MCHECKSTYLE-416 (release of plugin version 3.2). Is this ticket likely to go soon? Perhaps it's able to target a later release after 3.2 and hence allow that out of the door? > suppressions inside JAR, non-absolute path, cannot be found > ----------------------------------------------------------- > > Key: MCHECKSTYLE-398 > URL: https://issues.apache.org/jira/browse/MCHECKSTYLE-398 > Project: Maven Checkstyle Plugin > Issue Type: Bug > Components: checkstyle:checkstyle > Affects Versions: 3.1.1 > Reporter: CHAN Shih-Ping > Priority: Major > Fix For: 3.2.0 > > > When the configuration file and suppressions XML file are inside a JAR, then > if the configuration file references the suppressions file with a > non-absolute path, the suppressions file cannot be located. > > wildfly-checkstyle-config:1.0.8.Final is a plugin dependency of > maven-checkstyle-plugin:3.1.1, containing both > {{wildfly-checkstyle/checkstyle.xml}} and > {{wildfly-checkstyle/suppressions.xml}}}} > > {code:java} > # inside checkstyle.xml we reference suppressions.xml with a absolute path > # this doesn't work if the path is changed to non-absolute > # wildfly-checkstyle/suppressions.xml, but both absolute/non-absolute > reference > # work in checkstyle-all.jar > <module name="SuppressionFilter"> > <property name="file" value="/wildfly-checkstyle/suppressions.xml" /> > </module>{code} > The configuration file is {{wildfly-checkstyle/checkstyle.xml}} inside the > JAR. > Standard Maven project: > {code:xml} > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-checkstyle-plugin</artifactId> > <version>3.1.1</version> > <configuration> > <configLocation>wildfly-checkstyle/checkstyle.xml</configLocation> > <includeTestSourceDirectory>true</includeTestSourceDirectory> > <sourceDirectories> > <directory>${project.build.sourceDirectory}</directory> > </sourceDirectories> > <resourceIncludes>**/*.properties,**/*.xml</resourceIncludes> > <includeTestResources>true</includeTestResources> > <includeResources>true</includeResources> > <consoleOutput>true</consoleOutput> > <failsOnError>true</failsOnError> > <failOnViolation>true</failOnViolation> > <propertyExpansion>samedir=/wildfly-checkstyle/</propertyExpansion> > </configuration> > <dependencies> > <dependency> > <groupId>org.wildfly.checkstyle</groupId> > <artifactId>wildfly-checkstyle-config</artifactId> > <version>1.0.8.Final</version> > </dependency> > <dependency> > <groupId>com.puppycrawl.tools</groupId> > <artifactId>checkstyle</artifactId> > <version>8.36.2</version> > </dependency> > </dependencies> > {code} > This configuraton works but if the reference to suppressions is non-absolute: > {{wildfly-checkstyle/suppressions.xml}}, then > {code:java} > Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: cannot > initialize module SuppressionFilter - Unable to find: > wildfly-checkstyle/suppressions.xml > at com.puppycrawl.tools.checkstyle.Checker.setupChild (Checker.java:482) > at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure > (AutomaticBean.java:201) > at > org.apache.maven.plugins.checkstyle.exec.DefaultCheckstyleExecutor.executeCheckstyle > (DefaultCheckstyleExecutor.java:168) > at > org.apache.maven.plugins.checkstyle.AbstractCheckstyleReport.executeReport > (AbstractCheckstyleReport.java:533) > at org.apache.maven.plugins.checkstyle.CheckstyleReport.executeReport > (CheckstyleReport.java:57) > at org.apache.maven.reporting.AbstractMavenReport.generate > (AbstractMavenReport.java:255) > at org.apache.maven.reporting.AbstractMavenReport.execute > (AbstractMavenReport.java:143) > at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > (DefaultBuildPluginManager.java:137) > at org.apache.maven.lifecycle.internal.MojoExecutor.execute > (MojoExecutor.java:210) > {code} > Using checkstyle-8.36.2-all.jar on the command line works whether the path > reference has the leading {{'/'}} or not. -- This message was sent by Atlassian Jira (v8.20.10#820010)