Skip to end of metadata
Go to start of metadata

Plugin Information

View Checkstyle on the plugin site for more information.

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

This plugin generates the trend report for Checkstyle, an open source static code analysis program. 

Installation Requirements

This plug-in requires the utility plug-in "analysis-core" (called "Static Analysis Utilities" in the update manager). Please ensure that the latest version of this plug-in is also installed.

Description


 
(lightbulb) This plug-in is supported by the Static Analysis Collector plug-in that collects different analysis results and shows the results in aggregated trend graphs. Additionally, health reporting and build stability is also based on the aggregated results.

The Checkstyle plug-in scans for checkstyle-result.xml files in the build workspace and reports the number of warnings found (files from all Checkstyle releases are supported). This plug-in is part of the suite of static code analysis plug-ins that are documented on a separate WIKI page.

The following features are provided by this plug-in:

  • Configuration of the files to scan after a build.
  • Build summary showing the new and fixed warnings of a build
  • Several trend reports showing the number of warnings per build
  • Overview of the found warnings per module, package, category, or type
    • Parsing of Maven pom.xml or Ant build.xml configuration files to obtain the module or project name
    • Parsing of Java files to obtain the package or name space name
  • Detail reports of the found warnings optionally filtered by severity (or new and fixed)
    • Short messages is read from the report file
    • Detailed description is read from the Checkstyle library
  • Colored HTML display of the corresponding source file and warning lines:
    • Direct link to the warning line
    • Highlighting of single lines as well as line ranges
    • Highlighting of multiple line ranges per warning (different color for primary range)
    • Tool tip describing the warning message
  • Failure threshold to mark a build as unstable
  • Configurable project health support
  • Remote API to export the build quality and found warnings
  • Works with the freestyle and native m2 build option (activated on goal checkstyle:checkstyle or site)
  • Several tokens to simplify post processing of the results
  • Localization available for: DE, JA (Please help to localize checkstyle for your locale!)

The current release is available in the download section. This plug-in is developed and maintained by Ullrich Hafner. Please use the mailing lists or issue tracker to ask questions, create feature request or bug reports, since I don't read the comment section on this page regularly.

Changelog

Release 3.50

Release 3.49

  • Compute author and commit information using the Git blame command. Show report of warnings by user on the job page and in the dashboard view. ( JENKINS-6748 - Analysis of Checkstyle Warnings per User RESOLVED )

Release 3.48

  • Added a new symbol for pipelines: checkstyle
  • Added trend graph support for pipelines (JENKINS-31202, thanks to Benjamin Fuchs for the help!)
  • Added support for the beautiful Jenkins Material Theme

Release 3.47

  • Upgrade of CheckStyle descriptions to latest version
  • Fixed missing dependency to joda-time (JENKINS-17062)
  • Expand environment variables in file pattern (JENKINS-30735)
  • Validate pattern using the ant pattern validator (JENKINS-34760)
  • Immediately change the trend graph after configuration (JENKINS-22295)

Release 3.46

  • Upgrade of CheckStyle descriptions to latest version
  • Fixed missing dependency to joda-time (JENKINS-17062)
  • Expand environment variables in file pattern (JENKINS-30735)
  • Validate pattern using the ant pattern validator (JENKINS-34760)
  • Immediately change the trend graph after configuration (JENKINS-22295)

Release 3.45

  • Don't alter SAX environment variable anymore (JENKINS-27548)
  • Fixed resolving of files with relative paths in workspace (JENKINS-32150)

Release 3.44

  • Make maven plug-in mandatory since otherwise class loading exceptions will sometimes destroy the build configuration (JENKINS-21268, JENKINS-14727)

Release 3.43

  • Added support for workflow plug-in (Thanks to Antonio Muñiz and Manuel Recena for their PRs)
  • Fixed links in detail page of trend reports (JENKINS-29900)

Release 3.42

  • Update of messages to latest Checkstyle release 6.1.4

Release 3.41

  • Reverted XML escaping of messages (JENKINS-25511, JENKINS-17309)
  • Added option to use previous build as reference build when calculating new and fixed warnings (JENKINS-13458, thanks to Tom Saunders for the pull request)

Release 3.40

Release3.39

Release 3.38

  • Added a view column that shows the number of warnings in a job

Release 3.37

  • Make dependency to ant-plugin optional

Release 3.36

  • Use columns of Checkstyle warnings when parsing files (JENKINS-19122)
  • Fix sorting of warnings that are on same line but different column (JENKINS-19047)
  • Show results of threshold evaluation also in console log (JENKINS-18954)
  • Escape XML symbols in warning messages (JENKINS-17309)

Release 3.35

Release 3.34

Release 3.33

  • Show more details in the fixed warnings view (JENKINS-15959)
  • Aggregate the maven parent module results in failed builds when the failure is caused by a threshold being hit (JENKINS-15324, JENKINS-12342)
  • Optimized http requests for static resources in the analysis plugins (JENKINS-16571)
  • Fixed missing build overview in maven jobs (JENKINS-16518)
  • Always use Xerces when parsing XML files (JENKINS-15613)
  • Read pom.xml to obtain path of output files in maven jobs (JENKINS-16250)
  • Show error message as file content if the source files could not be transferred to the master (JENKINS-16222)

Release 3.32

Release 3.31

Release 3.30

Release 3.29

  • Reduce memory footprint of plug-in (thanks to Kohsuke for the patches)
  • Upgrade to YUI 2.9 (support for new bread crumbs and context menus: JENKINS-13532, thanks to OHTAKE Tomohiro for the patch)

Release 3.28

  • Show all values of difference graph

Release 3.27

  • Added hyperlinks to build summary if threshold is exceeded (JENKINS-12424)

Release 3.26

  • Added option to filter projects with zero warnings in the warnings dashboard portlet (JENKINS-12984)
  • Center the affected source line in source view (JENKINS-13491)
  • Fixed incompatibility of detail tabs with new bread crumb view (JENKINS-13532)

Release 3.25

  • Added a new portlet that shows the warning totals as a line graph

Release 3.24

  • Show build result threshold evaluation information in build summary (JENKINS-12424)
  • Fixed plug-in configuration if used in conjunction with flexible-publisher plug-in (JENKINS-12182, JENKINS-8185)
  • Upgrade to Checkstyle 5.5

Release 3.23

  • Fixed initialization problem when configuring the plug-in for maven jobs. (JENKINS-12075)

Release 3.22

  • Fixed NPE while configuring a graph with no builds yet (JENKINS-12045)
  • Group warnings by relative path if the associated language has no package or namespace concept (JENKINS-11846)
  • Allow skipping of calculating "new" issues (JENKINS-11761)
  • Fixed display of 'Use delta for new warnings' option (JENKINS-11758)
  • Ignore 'new warnings' threshold in the first build (JENKINS-11718)

Release 3.21

  • Fixed enlarge link for trend graphs (JENKINS-11324)
  • Fixed visibility of 'enable trend graph' link
  • Fixed reading of results if analysis is invoked during 'mvn site' (JENKINS-10820)

Release 3.20

  • Ignore failed builds when evaluating the build history in trend graphs and new warnings calculation (JENKINS-10682)
  • Added OSGi bundle detection when grouping warnings by module (JENKINS-10681)
  • Use the path as a replacement for the package grouping for all warnings that are not from Java or C# files (issue 2)

Release 3.19

  • Added new tokens for token macro plug-in (JENKINS-10027): now tokens CHECKSTYLE_NEW, CHECKSTYLE_FIXED, CHECKSTYLE_COUNT and CHECKSTYLE_RESULT are available.

Release 3.18

Release 3.17

  • Fixed display of trend graphs for maven jobs (report)

Release 3.16

  • Fixed health reporting and build failure/unstable thresholds for maven project type (JENKINS-4912, JENKINS-3514)
  • Fixed broken detail views when using a reverse proxy (JENKINS-3410, thanks to Benjamin Cabé for the fix)
  • Show the reference build that is used to compute new and fixed warnings (when build thresholds are set)
  • Improved logging statements when build is executed on a slave

Release 3.15

  • Added configuration option to enable automatic project and module name detection by reading all Ant project.xml and Maven pom.xml files (JENKINS-8915, JENKINS-9090)
  • Added preliminary support for the Token Macro Plugin: CHECKSTYLE_COUNT expands to the number of Checkstyle warnings and CHECKSTYLE_RESULT expands to the plug-in build result (stable, unstable, failed)

Release 3.14

  • Fixed missing dependency to Hudson/Jenkins 1.395 (JENKINS-8509)

Release 3.13

  • Jenkins update to links and documentation
  • Show progress text while dashboard portlet graphs are created

Release 3.12

  • Added support for multi-configuration projects (JENKINS-6772)

Release 3.11

  • Fixed sorting of date labels of dashboard trend graphs (JENKINS-8476)
  • Fixed evaluation of builds that will be considered in the dashboard trend graph (JENKINS-8283)

Release 3.10

  • Added build status thresholds for each warning priority (JENKINS-3561)

Release 3.9

  • Fixed computation of module names for maven projects (JENKINS-6768)
  • Don't report an error message if a maven module does not contain a report file (JENKINS-6895)
  • Fixed ant links (JENKINS-6862)

Release 3.8

Release 3.7

Release 3.6

  • Fixed broken links to project page and overview image (JENKINS-6417)

Release 3.5

  • Added trend graph portlets for the dashboard view
  • Added option to start the plug-in even for failed builds (JENKINS-6117)
  • Added 'enlarge' link for trend graphs that shows a detail page with the graph
  • Fixed ordering of warnings in detail views (JENKINS-6132)
  • Fixed warning distribution graph in files detail view (JENKINS-6139)

Release 3.4

Release 3.3

  • New warnings computation is now based on the current build and the reference build (i.e., the last successful build, see JENKINS-5147)
  • Visualized plug-in build status (based on the healthiness thresholds)
  • Added high scores for successful builds
  • Don't show project action if there are no warnings (JENKINS-5473)
  • Don't show trend graph configuration on job creation (JENKINS-5294)
  • Improved remote API, now the warning keys are also exposed (JENKINS-5195)

Release 3.2

Release 3.1

  • Fixed trend report link if there are no results available yet (JENKINS-5156)
  • Fixed preview of trend reports
  • Added dependency to Hudson 1.337 due to a class loader bug in previous versions (JENKINS-4993)

Release 3.0

  • Extracted common code of the static code analysis plug-ins into a new utility plug-in "analysis-core"
  • Several bug fixes and small improvements

Release 1.x-2.x ChangeLog

77 Comments

  1. Unknown User (mathieu.cousy@valtech.fr)

    Hello,

    We have just updated the plugin to 1.13version and it seems there is a problem with the icon management.

    Actually  in the dashboard we have lost the tooltips and images (replaced by '%') on the projects using checkstyle plugins.

    Is there anything to configure in this last version ?

     Thanks in advance,

    Mathieu 

    1. This is a bug. Could you please file an issue?

      Thanks, Ulli

      1. Unknown User (mathieu.cousy@valtech.fr)

  2. Hi,

    Could you tell us which Checkstyle and Checkstyle Maven Plugin versions can be used with this plugin ?

    Thanks in advance.

    Zac

    1. Actually there should be no hard dependencies to a specific version. We are using the latest checkstyle and maven plugin.

  3. It seems to get the Source Code Visualization feaute you must have Administer permission.

    Error:

    Access Denied

    ****** is missing the Administer permission

    Is there any reason for this? anyway to get this without setting your self up with admin rights?

    Thanks

    -Mohamed

  4. Unknown User (hebertk)

    Hey guys,

    Is there anyway to configure this plugin to look in a directory besides "target" to find the checkstyle-result.xml file.

    In my pom.xml I have something like this:

    <build>
    <directory>build/jars</directory>
    ...
    </build>

    The checkstyle:checkstyle goal runs fine and the report gets put in this directory but this plugin can't find it. If I change the directory back to "target" everything works fine...

    Any ideas or suggestions would be very appreciated.

    Thanks,

    Kyle

  5. Hi,

    I have a further question considering the rights management:

    In our setup, the links to the highlighted code are available when an admin is logged in only.

    It might make sense, that anonymous user can't see that.

    However, even our subproject (job) managers ain't permitted to get the links.

    Is that desired behavior?

    cheers,

    Christian

  6. Unknown User (xavier vignon)

    Hi,

    I've got a problem with this plugin : after successful installation (and installation of the static analysis utilities plugin), when i go on job configuration page, it does not display correctly, and in my jonas console i've got a JellyTagException ... caused by java.lang.NoClassDefFoundError: hudson/tasks/BuildStepMonitor.

    Anyone can help me ??

    Thx a lot

    Xavier

    1. You're using a version of the plugin which is built against a more recent version of Hudson ==> Either downgrade the plugin or upgrade your Hudson version.

  7. Unknown User (skifflad)

    Just upgraded to Hudson 1.357 with Checkstyle Plug-In 3.6 and Static Analysis Collector 1.5.

    Checkstyle is running ok, but the plug-in is reporting a red ball error on each specific build page where there are checkstyle warnings to report. When you click on Warnings, you see the Warnings page with a correct Summary, but the details section is only showing the Tab headings (Packages, Files, Warnings, Details) but nothing further ?

    Anybody else seeing same ?

    1. Unknown User (tgmcclen)

      Yep, I've got the same here.... haven't been able to work it out yet... fingers crossed the guys are on to it!

      1. Unknown User (skifflad)

        I've just added an issue.

  8. I want to fail the build if there is a new warning in checkstyle. But if i set the boundary  for "new" under the "red ball" to one, it doesnt work. Do i miss something !?!?!

    1. You need to use '0' if the build should fail on 1 warning!

      What does the checkstyle plug-in report in the console?

      E.g.:

      [CHECKSTYLE] Found 113  annotations (0 high, 113 normal, 0 low)
      [CHECKSTYLE] Setting build status to UNSTABLE since total number of new annotations exceeds the threshold 0
      
      1. My log looks like:

        [CHECKSTYLE] Successfully parsed file /home/workarea/zvs/workspace/zvs-continuous_0.1.0/zvs/application/model/impl/target/checkstyle-result.xml of module de.mms_dresden.zvs.application.model.impl with 1 warnings.
        [hudson] Archiving ...

        It is a maven job in hudson and the project itself is a multi modul maven project. I set the boundary to 0 but it is still not working...

        1. i digged deeper and i couldnt find a solution. What i did:

          1. created a "Hello World " maven app: "mvn archetype:create -DgroupId=... -DartifactId=helloWorld" and added the checkstyle plugin to the reporting section

          2. installed a clean hudson

          3. added "Checkstyle Plug-in  3.8" and "Static Analysis Collector Plug-in 1.6" to hudson

          4. created a new maven job in hudson for this "hello world" project

                mvn goal: "mvn clean install site"
                checkstyle settings: "red ball (total): 1" "red ball(new): 0"

          The output:

           -------------------------------------------------------
           T E S T S
          -------------------------------------------------------
          Running de.mms_dresden.zvs.testproject.AppTest
          Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.063 sec
          
          Results :
          
          Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
          
          [HUDSON] Zeichne Testergebnisse auf
          [INFO] [jar:jar {execution: default-jar}]
          [INFO] Building jar: D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\workspace\helloWorld\target\helloWorld-1.0-SNAPSHOT.jar
          [INFO] [install:install {execution: default-install}]
          [INFO] Installing D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\workspace\helloWorld\target\helloWorld-1.0-SNAPSHOT.jar to D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\workspace\.repository\de\mms_dresden\zvs\testproject\helloWorld\1.0-SNAPSHOT\helloWorld-1.0-SNAPSHOT.jar
          [INFO] [site:site {execution: default-site}]
          [INFO] Generating "Project Team" report.
          [INFO] Generating "Issue Tracking" report.
          [INFO] Generating "Checkstyle" report.
          [INFO]
          [INFO] There are 12 checkstyle errors.
          [WARNING] Unable to locate Source XRef to link to - DISABLED
          [INFO] Generating "Continuous Integration" report.
          [INFO] Generating "Project Plugins" report.
          [INFO] Generating "Dependencies" report.
          [INFO] Generating "Plugin Management" report.
          [INFO] Generating "Mailing Lists" report.
          [INFO] Generating "Source Repository" report.
          [INFO] Generating "Project Summary" report.
          [INFO] Generating "About" report.
          [INFO] Generating "Project License" report.
          [CHECKSTYLE] Successfully parsed file D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\workspace\helloWorld\target\checkstyle-result.xml of module helloWorld with 12 warnings.
          [HUDSON] Archiving site from D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\workspace\helloWorld\target\site to D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\site\helloWorld
          [HUDSON] Archiving D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\workspace\helloWorld\pom.xml to D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\modules\de.mms_dresden.zvs.testproject$helloWorld\builds\2010-06-24_14-19-43\archive\de.mms_dresden.zvs.testproject\helloWorld\1.0-SNAPSHOT\pom.xml
          [HUDSON] Archiving D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\workspace\helloWorld\target\helloWorld-1.0-SNAPSHOT.jar to D:\projekte\hudson\checkstyle-3.8\work\jobs\helloWorld\modules\de.mms_dresden.zvs.testproject$helloWorld\builds\2010-06-24_14-19-43\archive\de.mms_dresden.zvs.testproject\helloWorld\1.0-SNAPSHOT\helloWorld-1.0-SNAPSHOT.jar
          [INFO] ------------------------------------------------------------------------
          [INFO] BUILD SUCCESSFUL
          [INFO] ------------------------------------------------------------------------
          [INFO] Total time: 1 minute 18 seconds
          [INFO] Finished at: Thu Jun 24 14:21:04 CEST 2010
          [INFO] Final Memory: 39M/254M
          [INFO] ------------------------------------------------------------------------
          channel stopped
          Finished: SUCCESS
          
          

          should i create a ticket?

          1. I see, you are using a m2 build. Currently the thresholds don't work for m2 builds: see http://issues.jenkins-ci.org/browse/JENKINS-4912.

            1. i found a workaround. if i activate the "Checkstyle Plugin " and the "Static Analysis Collector Plug-in"  and set the bounderies on the "Static Analysis Collector Plug-in", it fails the build.

  9. Unknown User (suri_x)

    Hi
    I am trying to integrate checkstyle plugin to Hudson manually, The instructions say download and copy the .hpi file into the hudson plugin directory, but when i try to download it downloads a checkstyle.zip file and is an exploder war file.Where can i get the checkstyle.hpi file to copy into the hudson plugin directory.

  10. Is there any way to send an email to the commiter(s) (without failing the build) when someone commits a new checkstyle warning (basically new checkstyle warnings are found)?

    Thanks.

    1. No that is not possible. That would be a nice feature request for the email component of Hudson.

  11. Unknown User (steven wood)

    Hey,

    I installed the newest hudson and checkstyle-plugin version. I see the checkstyle trend at the right side and the output of my build tells me that there are 0 warnings read from the checkstyle file. So far so good ...

    My problem is that in the hudson overview of a project I only see the standard hudson menu with status, changes, build, delete ...

    When I installed the plugin the first time (3 or 4 months ago) there were some checkstyle icon(link) where I can get more information about checkstyle of the current project.

    I only see the trend and at a build the informatzion that the checkstyle file was load.

    Thnaks in advance

    1. The link is only shown if there are warnings in a project.

  12. Unknown User (tmilian@msn.com)

    Hi,

    Not sure if it's a bug or not but just upgraded to checkstyle plugin v3.11along with the analysis-core, findbugs plugin, cpd. and all the reporters work except checkstyle. Hudson is v1.392 and Maven v2.1.0.

    All my jobs native Maven multi-module projects. Before I updated it would pick up all the checkstyle-result.xml files from all modules but now  this is what I get:

    [HUDSON]Collecting dependencies info
    [INFO] [checkstyle:checkstyle]
    [CHECKSTYLE] Skipping maven reporter: there is already a result available.
    [TASKS] Skipping maven reporter: there is already a result available.
    [HUDSON] Collecting dependencies info
    
    [INFO] \[checkstyle:check \[execution: default\]\]
    [CHECKSTYLE] Skipping maven reporter: there is already a result available.
    [TASKS] Skipping maven reporter: there is already a result available.
    [INFO] Preparing findbugs:check
    [INFO] Preparing findbugs:findbugs
    [WARNING] Removing: check from forked lifecycle, to prevent recursive invocation.
    [WARNING] Removing: check from forked lifecycle, to prevent recursive invocation.
    [WARNING] Removing: check from forked lifecycle, to prevent recursive invocation.
    [HUDSON] Collecting dependencies info
    [INFO] [resources:resources]
    [INFO] Using 'UTF-8' encoding to copy filtered resources.
    [INFO] Copying 1 resource
    [TASKS] Skipping maven reporter: there is already a result available.
    [INFO] [compiler:compile]
    [INFO] Nothing to compile - all classes are up to date
    [TASKS] Skipping maven reporter: there is already a result available.
    [HUDSON] Collecting dependencies info
    [INFO] [findbugs:findbugs]
    [INFO] Locale is en
    [FINDBUGS] Successfully parsed file D:\hudson_home\jobs\core_int\workspace\core_int\VOB_EA\core\core-modules\core-concurrent\target\findbugsXml.xml of module EA Core Concurrent Jar with 0 warnings.
    

    The checkstyle-result-xml file is being written on the target folder as it should, Maven CLI execution works fine also.

    The Maven build is not doing any of the site goals, just binding the checkstyle plugin to its default Maven lifecycle stage (verify).

    Sorry for writing this here but I tried to open a JIRA issue with no avail (I even signed up and everything).

    Thanks

    1. Are you running the build in parallel, i.e. individual maven modules build in parallel?

  13. I am setting up hudson for checkstyle.  I have installed checkstyle 3.9 and Static code analysis plug-in 1.9 version.  I am using maven-checkstyle-plugin version 2.6 locally and this is working fine.

    But in Hudson I am gettting below error.  Any leads on how to solve this?at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.NoSuchMethodError: hudson.plugins.checkstyle.CheckStyleReporter.getModuleName(Lorg/apache/maven/project/MavenProject;)Ljava/lang/String;
    at hudson.plugins.checkstyle.CheckStyleReporter.perform(CheckStyleReporter.java:81)
    at hudson.plugins.analysis.core.HealthAwareMavenReporter.postExecute(HealthAwareMavenReporter.java:197)
    at hudson.maven.Maven3Builder$MavenExecutionListener.reccordMojoSucceeded(Maven3Builder.java:568)
    at hudson.maven.Maven3Builder$MavenExecutionListener.mojoSucceeded(Maven3Builder.java:531)
    at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:87)
    at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:228)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)

    1. Seems that the versions of the plug-in and Hudson are quite old. Can you please upgrade to the latest versions and retry.?

  14. Hi,

    I'm getting such error. I'm using the newest version of Jenkins & plugins. Restarting Jenkins helps for a while but then again :

    [CHECKSTYLE] Collecting checkstyle analysis files...
    ERROR: Publisher hudson.plugins.checkstyle.CheckStylePublisher aborted due to exception
    java.lang.ClassCastException: cannot assign instance of hudson.plugins.analysis.core.FilesParser to field hudson.FilePath$FileCallableWrapper.callable of type hudson.FilePath$FileCallable in instance of hudson.FilePath$FileCallableWrapper
        at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(Unknown Source)
        at java.io.ObjectStreamClass.setObjFieldValues(Unknown Source)
        at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
        at java.io.ObjectInputStream.readSerialData(Unknown Source)
        at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
        at java.io.ObjectInputStream.readObject0(Unknown Source)
        at java.io.ObjectInputStream.readObject(Unknown Source)
        at hudson.remoting.UserRequest.deserialize(UserRequest.java:178)
        at hudson.remoting.UserRequest.perform(UserRequest.java:98)
        at hudson.remoting.UserRequest.perform(UserRequest.java:48)
        at hudson.remoting.Request$2.run(Request.java:270)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at hudson.remoting.Engine$1$1.run(Engine.java:58)
        at java.lang.Thread.run(Unknown Source)

    1. Ok, the problem is resolved - version of one of slave was old. There's no exception after update.

      1. I have this issuesERROR: Publisher hudson.plugins.checkstyle.CheckStylePublisher aborted due to exception

        
        ERROR: Publisher hudson.plugins.checkstyle.CheckStylePublisher aborted due to exception
        java.lang.NullPointerException: Name is null
        at java.lang.Enum.valueOf(Enum.java:213)
        at hudson.plugins.analysis.util.model.Priority.valueOf(Priority.java:18)
        at hudson.plugins.analysis.core.HealthAwarePublisher.getMinimumPriority(HealthAwarePublisher.java:567)
        at hudson.plugins.analysis.core.AbstractHealthDescriptor.<init>(AbstractHealthDescriptor.java:36)
        at hudson.plugins.checkstyle.CheckStyleHealthDescriptor.<init>(CheckStyleHealthDescriptor.java:25)
        at hudson.plugins.checkstyle.CheckStyleResultAction.<init>(CheckStyleResultAction.java:31)
        at hudson.plugins.checkstyle.CheckStylePublisher.perform(CheckStylePublisher.java:143)
        at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:312)
        at hudson.tasks.BuildStepMonitor$2.perform(BuildStepMonitor.java:27)
        at hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:692)
        at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:667)
        at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:645)
        at hudson.model.Build$RunnerImpl.post2(Build.java:162)
        at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:614)
        at hudson.model.Run.run(Run.java:1429)
        at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
        at hudson.model.ResourceController.execute(ResourceController.java:88)
        at hudson.model.Executor.run(Executor.java:238)
        
        
        1. I have the same problem.  Any solution found?

          1. It looks like when the configuration page is opened, a threshold value is not selected.  If the configuration is saved an invalid value is used when running the build.  As long as a value is selected it seems to work, but every time you bring up the configuration again, the value is unselected.  If you look at the config.xml, the selected value is in there as long as it is saved with something selected.

            I should add I'm using version 3.23.

            1. This is an incompatibility between checkstyle plug-in and the flexible-publisher plug-in. Will be fixed with the next releases of the analysis plug-ins and the flexible-publisher plug-in.

              See https://issues.jenkins-ci.org/browse/JENKINS-12182, https://issues.jenkins-ci.org/browse/JENKINS-12692, https://issues.jenkins-ci.org/browse/JENKINS-8185.

  15. Hello,

    I'd like to suppress checkstyle for *Test.java files in my project. How can I configure the plugin?

    1. The plug-in is the wrong place, you need to configure checkstyle in your build correctly.

      1. Thanks Ulli for your reply.

        Is it to be done in the pom.xml of the project or in Jenkins Dashboard -> Project -> Configure (I couldn't find it here)

        1. In your pom, see online reference for checkstyle maven plug-in.

  16. This wiki page says that:

    "The Checkstyle plug-in scans for checkstyle-result.xml files in the build workspace"

    but, in practice, and from a quick review of the source, it seems that only actually looks for a single checkstyle-result.xml file in the project's target directory.

    Is that behavior intentional or would it qualify as a bug? Scanning multiple checkstyle-result.xml files would be quite useful for me, as I have a javascript code analysis plugin that creates reports in a checkstyle-compatible format. (no reason to re-invent the wheel). I'd like to be able to get reporting on those errors alongside the standard checkstyle results. I realize it's probably not ideal to piggyback on the checkstyle reporting plugin for this, but I don't have the time or resources to try to create a new static-analysis plugin for Jenkins.

    1. Actually the plug-in works with multiple files. Are you using a maven or freestyle job? In freestyle jobs you can define multiple patterns that will be resolved. In maven projects, the plug-in derives the name of the file to read from your pom. For each maven module, only one file will be read.

      1. It's a single-module maven project, so I guess I'm stuck with only analyzing a single file. :(

        1. No, just use the freestyle job type to build your maven project.

  17. Unknown User (klark hu)

    Hi,

    I met a problem. after I added the checkstyle plugin downloaded as 3.27 version. and i added the plugin to the .hudson\plugins. 

    but I restarted the web, and I can't see any information about this plugin under plugin manager in the web. What's up, can you give me tips for this.

    thanks,

    Klark

    1. You need to install the plug-in analysis-core, too. See big note at top of this page!

      1. Unknown User (klark hu)

        I install the checkstyle,analysis-core, but I didn't see them in pugin manager -> installed in the page.

      2. Unknown User (klark hu)

        I add the checkstyle.hpi and analysis-core.hpi into .hudson/plugins folder. and install them by web under plugin manager in the page.

        I thought it would be ok, but not, any tips should be welcome. thanks.

      3. Unknown User (klark hu)

        SEVERE: Failed Initializing plugin checkstyle
        java.lang.NullPointerException
        at hudson.PluginManager$2$1$2.run(PluginManager.java:313)
        at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
        at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
        at hudson.model.Hudson$4.runTask(Hudson.java:698)
        at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
        Jul 13, 2012 10:24:49 AM hudson.model.Hudson$5 onTaskFailed
        SEVERE: Failed Initializing plugin analysis-core
        java.lang.NullPointerException
        at hudson.PluginManager$2$1$2.run(PluginManager.java:313)
        at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
        at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
        at hudson.model.Hudson$4.runTask(Hudson.java:698)
        at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

        Jul 13, 2012 10:24:49 AM hudson.model.Hudson$5 onAttained
        INFO: Prepared all plugins

        Jul 13, 2012 10:24:48 AM hudson.model.Hudson$5 onTaskFailed
        SEVERE: Failed Loading plugin checkstyle
        java.io.IOException: Dependency analysis-core (1.41) doesn't exist
        at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:443)
        at hudson.PluginManager$2$1$1.run(PluginManager.java:296)
        at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
        at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
        at hudson.model.Hudson$4.runTask(Hudson.java:698)
        at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)

        Jul 13, 2012 10:24:48 AM hudson.model.Hudson$5 onTaskFailed
        SEVERE: Failed Loading plugin analysis-core
        hudson.util.IOException2: Failed to load plugin instance for: analysis-core
        at org.hudsonci.inject.internal.plugin.SmoothiePluginStrategy.load(SmoothiePluginStrategy.java:193)
        at org.hudsonci.inject.internal.plugin.DelegatingPluginStrategy.load(DelegatingPluginStrategy.java:72)
        at hudson.PluginManager$2$1$1.run(PluginManager.java:297)
        at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
        at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
        at hudson.model.Hudson$4.runTask(Hudson.java:698)
        at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
        at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
        Caused by: java.lang.LinkageError: loader (instance of org/hudsonci/inject/internal/plugin/PluginClassLoader): attempted duplicate class definition for name: "org/apache/xerces/parsers/SAXParser"
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.defineClass(ExtensibleURLClassLoader.java:63)
        at org.aspectj.weaver.loadtime.WeavingURLClassLoader.defineClass(WeavingURLClassLoader.java:151)
        at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.defineClass(ExtensibleURLClassLoader.java:97)
        at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.findClass(ExtensibleURLClassLoader.java:52)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at hudson.ClassicPluginStrategy$DependencyClassLoader.findClass(ClassicPluginStrategy.java:426)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at org.xml.sax.helpers.NewInstance.newInstance(Unknown Source)
        at org.xml.sax.helpers.XMLReaderFactory.loadClass(Unknown Source)
        at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(Unknown Source)
        at org.aspectj.weaver.loadtime.definition.DocumentParser.getXMLReader(DocumentParser.java:167)
        at org.aspectj.weaver.loadtime.definition.DocumentParser.saxParsing(DocumentParser.java:137)
        at org.aspectj.weaver.loadtime.definition.DocumentParser.parse(DocumentParser.java:117)
        at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.parseDefinitions(ClassLoaderWeavingAdaptor.java:258)
        at org.aspectj.weaver.loadtime.DefaultWeavingContext.getDefinitions(DefaultWeavingContext.java:130)
        at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize(ClassLoaderWeavingAdaptor.java:161)
        at org.aspectj.weaver.loadtime.WeavingURLClassLoader.createAdaptor(WeavingURLClassLoader.java:171)
        at org.aspectj.weaver.loadtime.WeavingURLClassLoader.defineClass(WeavingURLClassLoader.java:132)
        at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.defineClass(ExtensibleURLClassLoader.java:97)
        at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.findClass(ExtensibleURLClassLoader.java:52)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at org.hudsonci.inject.internal.plugin.SmoothiePluginStrategy.loadPluginClass(SmoothiePluginStrategy.java:217)
        at org.hudsonci.inject.internal.plugin.SmoothiePluginStrategy.load(SmoothiePluginStrategy.java:188)
        ... 10 more

        Jul 13, 2012 10:24:47 AM hudson.model.Hudson$5 onAttained
        INFO: Listed all plugins

        Jul 13, 2012 10:24:47 AM hudson.model.Hudson$5 onAttained
        INFO: Started initialization

        Jul 13, 2012 10:24:47 AM hudson.PluginManager createPluginStrategy
        INFO: Plugin strategy: org.hudsonci.inject.internal.plugin.DelegatingPluginStrategy

        Jul 13, 2012 10:24:46 AM hudson.util.CharacterEncodingFilter init
        INFO: CharacterEncodingFilter initialized. DISABLE_FILTER: false FORCE_ENCODING: false

        Jul 13, 2012 10:24:46 AM hudson.WebAppMain contextInitialized

        1. OK, I see. the plug-in analysis-core cannot be loaded. Which version of Jenkins are you using?

          1. Unknown User (klark hu)

            analysis-core  1.41

            checkstyle 3.27

            I tried many times, but did not work out.

            1. Which version of Jenkins???

              1. Unknown User (klark hu)

                hudson-2.2.1  

                1. Maybe that is the problem. I haven't tested with Hudson quite a while now. Can't you upgrade to Jenkins?

                  1. Unknown User (klark hu)

                    Ok, can you please check my another problem below with maven. quite confused.

                    thanks.

            2. Latest: analysis-core 1.43, checkstyle 3.29

  18. I´m having a problem I was wondering if anybody could help me with.

    The plugin shows for example 5203 warnings and 2 new warnings.

    I click on the new warnings to see what they are and there are no new warnings.

    The numbers seem to always be off by at least 2.

    Any idea of what could be causing this? Is this an issue with the Static Code Analysis Plugin?

    I´m using version 3.29 of the Checkstyle Plugin and 1.42 of the Static Code Analysis Plugin.

    Thanks in advance

    Felipe

    1. Which difference computation is used (checkbox in configuration)? Can you be more concrete, e.g. adding screenshots. Please use the issue tracker for such bugs, it is much easier to communicate using Jira...

      1. I´m using Compute new warnings (based on reference build), Use delta for new warnings, and the threshold = 0.

        I´m getting build fails all the time even when there are no new warnings. Can´t get screenshots because due to issues the plugin was turned off :(

        I wasn´t sure it was something I was doing wrong or an actual error, that´s why I ended up not opening and issue on Jira.

  19. Unknown User (klark hu)

    I met another problem.

    for company net control, when I run  

    mvn archetype:create -DgroupId=com.byread  -DartifactId=blogweb -DarchetypeArtifactId=maven-archetype-webapp -X

    it shows:

    No plugin found for prefix 'archetype' in the current project and in the plugin groups ..... available from the repositories.

    because I can't load plugin from net, so I need to put them into repository folder by myself. but i don't what is the archetype like.

    so that I can run that command.

    can you give me tips about this. Thanks.

    1. Well this is a maven problem (wink) Please don't use the comments on the Checkstyle Jenkins plug-in for questions like this.

      1. Unknown User (klark hu)

  20. On Jenkins 1.479 and Checkstyle plugin 3.30 I have a Maven job
    (goals: -U -B clean checkstyle:checkstyle findbugs:check cobertura:cobertura deploy)
    which succeeds but Jenkins still shows it failed and the jenkins.log shows the exception shown below.

    When I turn off "Publish Checkstyle analysis results", the problem disappears.

    What might be the root cause?
    Thanks!
    -Max

    Aug 31, 2012 12:26:48 PM hudson.ExpressionFactory2$JexlExpression evaluate
    WARNING: Caught exception evaluating: action.iconFileName!=null. Reason: java.lang.reflect.InvocationTargetException
    java.lang.reflect.InvocationTargetException
            at sun.reflect.GeneratedMethodAccessor225.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
            at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
            at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
            at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
            at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
            at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
            at org.apache.commons.jexl.parser.ASTNENode.value(ASTNENode.java:55)
            at org.apache.commons.jexl.parser.ASTExpression.value(ASTExpression.java:54)
            at org.apache.commons.jexl.parser.ASTExpressionExpression.value(ASTExpressionExpression.java:56)
            at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
            at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:72)
            at org.apache.commons.jelly.expression.ExpressionSupport.evaluateRecurse(ExpressionSupport.java:61)
            at org.apache.commons.jelly.expression.ExpressionSupport.evaluateAsBoolean(ExpressionSupport.java:71)
            at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:97)
            at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
            at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:121)
            at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
            at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
            at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
            at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
            at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
            at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
            at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:146)
            at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
            at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
            at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
            at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
            at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
            at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
            at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
            at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
            at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
            at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
            at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
            at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
            at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
            at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
            at jenkins.model.ModelObjectWithContextMenu$ContextMenu$1.run(ModelObjectWithContextMenu.java:131)
            at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
            at jenkins.model.ModelObjectWithContextMenu$ContextMenu.from(ModelObjectWithContextMenu.java:124)
            at jenkins.model.ModelObjectWithContextMenu$ContextMenu.from(ModelObjectWithContextMenu.java:113)
            at hudson.model.Actionable.doContextMenu(Actionable.java:137)
            at sun.reflect.GeneratedMethodAccessor118.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
            at java.lang.reflect.Method.invoke(Method.java:597)
            at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
            at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
            at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
            at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
            at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
            at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
            at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
            at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:384)
            at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
            at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
            at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
            at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
            at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
            at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
            at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
            at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
            at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
            at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
            at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)
            at org.kohsuke.stapler.Stapler.service(Stapler.java:162)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
            at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
            at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
            at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
            at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
            at com.cisco.step.jenkins.plugins.people.redirector.PeopleRedirectorPlugin$1.doFilter(PeopleRedirectorPlugin.java:91)
            at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
            at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
            at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)
            at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86)
            at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84)
            at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
            at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
            at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
            at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
            at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
            at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
            at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:85)
            at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
            at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
            at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
            at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
            at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
            at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
            at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
            at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
            at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
            at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63)
            at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
            at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
            at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
            at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
            at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
            at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
            at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
            at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
            at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
            at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
            at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
            at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
            at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
            at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
            at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215)
            at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
            at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
            at java.util.concurrent.FutureTask.run(FutureTask.java:138)
            at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
            at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
            at java.lang.Thread.run(Thread.java:662)
    Caused by: java.lang.NullPointerException
            at hudson.plugins.analysis.core.AbstractResultAction.getIconFileName(AbstractResultAction.java:137)
            at hudson.plugins.analysis.core.MavenResultAction.getIconFileName(MavenResultAction.java:236)
            ... 132 more
    
    1. I can't reproduce that bug, however I added a fix that should prevent that NPE. It will be part of the next analysis-core release.

      1. Hi Ulli,
        with Checkstyle 3.31 and Analysis Collector 1.33 I don't see the problem any longer.
        Thanks a lot!

      2. I ran into the same problem again.
        But now I think I got the root cause.
        There was a timezone discrepancy.
        Originally, the machine were configured for CDT.
        Then we changed it to PDT – at least we thought so.
        The OS had the proper timezone (PDT), but Jenkins still had (CDT).
        I didn't notice for a while.
        After I noticed, I adjusted the /etc/localtime symlink to point to the proper timezone.
        That fixed the problem.

  21. I could use some insight on this if you guys have a minute.

    I have a maven project in jenkins. It includes a parent pom, a distinct aggregator pom, and a bunch of submodules. Checkstyle reports are fine for all of them except for the aggregator which, well aggregates all the underlying problems. Just to be clear, if I have 10 submodules with 5 warnings each, I'll get the aggregator module reporting 50 (duplicate) problems. This might be a checkstyle issue, and not the maven plugin, or maybe it's normal behavior. All advice welcome!

    1. I'm not sure if I understand correctly. Can you please show your module structure? What is your expectation on the results? Are there checkstyle.xml files created from maven in the aggregator module?

  22. Excuse me, but an easy question: how to instal and use plugins? 

    I'm searching to use checkstyle within a jenkins/linux/maven environnement. The checkstyle seems to be installed, but, when I launch a build on my projects (on which I konw there are rule violations), it says me that everything is ok!

    I cannot find also how to instal analysis-collector, because I don't see this exact name in the installed plugins.

    Moreover, I don't find any configuration part in Jenkins enabling me to use my own checkstyle.xml configuration file.

    If somebody can help me that way, thanks

      1. Run checkstyle in your build
      2. Install checkstyle in Jenkins using the update manager
      3. Add checkstyle as post build step in your job configuration

      Please use the mailing lists for such basic questions, you will get faster feedback there.

  23. Checkstyle working in Maven, but not working in Jenkins

    I have 7 projects total.

    1 parent and 6 child projects.

    Maven 3.0.5

    Maven checkstyle plugin

    Jenkins

    Jenkins checkstyle plugin

    Scenario-1: Checkstyle report for all projects.

    1. in parent pom i declared checkstyle plugin in <reporting> tag:

    – I run 'mvn clean site' command

    – It working both ways in eclipse with maven. and in Jenkins also.

    – Giving checkstyle reports for all 7 projects.
    Scenario-2: Checkstyle report for all projects except 2 projects.

    – I deleted <reporting> part in parent pom and i added.

    – I added in remaining 4 projects, i declared checkstyle plugin in <reporting> tag.

    – It working in eclipse but not working in Jenkins.

    My code: <reporting>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.10</version>
    <configuration>
    <configLocation>../parent-project/checkstyle.xml</configLocation>
    </configuration>
    </plugin>
    </plugins>
    </reporting>
    Senario-3:

    1. I deleted checkstyle plugin in parent
    2. I added checkstyle plugin in 4 needed projects same above code.
    3. In remaining 2 child projects I added like this. <reporting>
      <plugins>
      <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
      <version>2.10</version>
      <configuration>
      <skip>true</skip>
      </configuration>
      </plugin>
      </plugins>
    4. I run 'mvn clean site'
    5. It working in Maven as expected but not working in Jenkins.

    My meaning of 'not working in Jenkins' is, I installed Checkstyle plugin in Jenkins, In the Jenkins job i selected 'Publish Checkstyle analysis results' check box. In scenario-1 i am able to see the checkstyle link in the jenkins job page. And if i click on that all code violations reports are appearing. In other scenarios (2,3) the Checkstyle link also not appearing.

    Please help me how to make it working in Jenkins, even i skip few projects.

    In Checkstyle Jenkins plugin, I did not find any much configuration regarding poms, 

    I am not able to understand, why Checkstyle Jenkins plugin not accepting even Maven accepted.

  24. Hi Ulli,

    Thank you for continuing to work on this plugin!

    Are there any version restrictions on the version of Checkstyle used to analyze the code? If any (and even if none!) I think it would be good if this could be mentioned at the top of the page.

    Thanks,

    Knut

    1. The plug-in should work with all versions. Maybe some rule descriptions are not yet integrated: the latest version is visible in GitHub: https://github.com/jenkinsci/checkstyle-plugin/tree/master/src/main/resources/hudson/plugins/checkstyle/rules

      1. Yes, there indeed seem to be some missing rule descriptions. From what I can tell these are only used to display a description of the warning as a popup, but I suppose the warning will still be reported correctly without the descriptions.

    2. The plug-in should work with all versions. Maybe some rule descriptions are not yet integrated: the latest version is visible in GitHub: https://github.com/jenkinsci/checkstyle-plugin/tree/master/src/main/resources/hudson/plugins/checkstyle/rules

  25. Im looking for instructions on how to configure this plugin to properly report results in the Jenkins UI for a checkstyle-result.xml file that has been produced by https://www.npmjs.com/package/gulp-tslint-jenkins-reporter.    Project structure is a maven multimodule project, where one of the projects is javascript and built via maven through frontend-maven-plugin.  Report properly exists in the target directory of the project, and I dont see any errors or indications of why the report is not published.  Any thoughts appreciated.

    1. Is this a Maven or freestyle job? The plugin is invoked in Maven jobs only for a selected set of goals.

      1. Yes its a maven job...   However, the report is being generated via gulp, so I wonder if thats throwing it off in some way?