How to use Checkstyle plugin in Jenkins/Hudson - jenkins

I am interested to know how to use CheckStyle.
I am doing static code analysis in Hudson, as first part, I installed Static Analyser and CheckStyle plugins in Hudson. But I am not able to find out how to use it in official Hudson checkstyple page also.
official page : http://wiki.hudson-ci.org/display/HUDSON/Checkstyle+Plugin
If you can show me a step by step procedure, that is more helpful to me.

Posting this as an answer per request:
You need to run CheckStyle as part of your build job; Hudson just displays the results from your build. Here is documentation for the Ant task and the Maven plugin.

In the Hudson build job configuration screen you should find a checkbox that turns on Checkstyle. You don't need to change your Maven scripts. I don't know if Ant scripts would need adjustment as we always use Maven.

Related

Jenkins change Build History timestamps

I have a Multibranch Pipeline in Jenkins.
My goal is to change the Timestamps of the Builds in the History.
I was able to change the DisplayName (#13 to 'test') as shown in the picture below, but not the timestamp. Is this possible, and if so, how?
After googling for some time I found one wonderful plugin.
https://plugins.jenkins.io/groovy-postbuild/
Groovy Post Build.
This plugin can help you to add custom text, plugin-predefined Icons In Build History side pane after build Timestamp. Like
And this plugin has some other icons also and we can give on hover to those icons.
It's really fun to implement cool stuff there. This plugin has very good documentation and well-defined Examples.
Please have a look, This will resolve your problem.
PS: you need to write some groovy script 😋
[update]
Install plugin:
Jenkins > configure > manage plugin > Avaialble > search for Groovy PostBuild > Install and restart Jenkins
How to use:
Start Configure your project. If the project is FreeStyle then go to post build tab in the configuration page. Like this:
A textArea will open now add your Script as described in Examples.
Now Apply and save. Run the build and tadaaaa.. your message is in build history pane.
I think this could help you to setup and run script

Jenkins javadoc plugin doesn't generate documentation

I have installed Jenkins, create a project and configure it.
I run into a problem, Jenkins do everithing great except documentation generating.
Could anyone point me where I have done mistake, and how fix it?
Thank you.
------------------------ New information ----------
Console output:
I have renamed doc to javadoc directory, but it isn't help.
Here is screenshot of javadoc directory contents in console, it is clear that Jenkins plugin didn't generate documentation, but why?
It sounds like you are expecting the Jenkins plugin to produce the documentation. The Jenkins plugin merely copies files from the job's workspace folder to the build's archive area and provides a link to it. If your build steps don't produce Javadoc, then Jenkins won't be able to archive and provide a link to it.
Does your pom file include the maven-javadoc-plugin?
Are your build steps invoking a goal that includes Javadoc generation?
For example, "mvn jar" would compile Java and build the jar but not build the javadocs. Clearly you have executed a goal that executes the tests and provides a code coverage report, but that does not trigger the Javadoc goals either. You would need to make sure your build steps include a javadoc goal - i.e., mvn javadoc:javadoc. The standard goals can be found here: https://maven.apache.org/plugins/maven-javadoc-plugin/plugin-info.html .

How can I fail a build if any java file is detected with System.out.println in Jenkins

I am using Jenkins as our build tool. I don't want System.out.println to be there in the code. Is there a way by which we can add a hook which will check this. And if any .java file is detected with System.out.println then fail the build.
You can use a static code analysis tool. For example PMD (https://pmd.github.io/pmd-5.3.3/index.html) .
You can specify a rule that checks for calls to System.out.println.
How to write a rule: https://pmd.github.io/pmd-5.3.3/customizing/howtowritearule.html
You can analyze your code with PMD over Jenkins via the PMD plugin: https://wiki.jenkins-ci.org/display/JENKINS/PMD+Plugin
There are some good tutorials for using PMD with Jenkins. A good one is this: https://www.youtube.com/watch?v=aRgYd-SLyrs
If you want to "Jenkins-ize" this, set up Jenkins to run with Sonar, and add a rule in Sonar that fails if System.out.println is found.
Advantages:
- you can run nightly sonar builds
- you can add more than that one rule (and you should ;))
- you will check code on the whole branch, not just yours.

Reusing several report files in jenkins sonar plugin

I'm generating several XML report files via ant task (checkstyle, findbugs, macker, jacoco, ncss, classycle, etc.).
I want the to reuse the generated files in jenkins sonar plugin. Is there any way to do so?
I'm planning in setting the properties in the project specific sonar-project.properties file. But I can't find any of these options at codehaus documentation site.
There's no point to reuse:
checkstyle or findbugs reports as SonarQube also executes those tools
ncss or classycle reports as it is SonarQube very job to compute those metrics
For JaCoCo, you can reuse reports if you don't want SonarQube to execute the unit tests again. See http://docs.codehaus.org/display/SONAR/Code+Coverage+by+Unit+Tests+for+Java+Project.

Build LaTeX PDF on Jenkins/Hudson

The team I work for manages a large collection of technical documentation which is written in LaTeX. Currently all the documentation we have is manually built by the editors and then checked into a version control system.
Is there a possibility to build the LaTeX files on jenkins/hudson?
If you can build your LaTeX files from the command line, Jenkins can build it for you.
Just create a job with a "Execute shell" build step.
You've tagged this question with [ant], so if you're building your documentation using an Ant script, you can alternatively add an "Invoke Ant" build step which calls the appropriate target.
Depending on which build system you're using you can also use plugins e.g. for Maven or Gradle. You can have a look at https://github.com/reallyinsane/mathan-latex-maven-plugin where you can find a maven and a gradle plugin. You can use them with none or less configuration.

Resources