Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable parallel build for specific plugin in Maven

I build my project using maven with -T option. Sometimes the build failed with random checkstyle error.

Is it possible to disable -T option for specific plugin (checkstyle) and block execution of this plugin in parallel?

Just in case attaching stacktraces:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.16:check (validate) on project yyy-1: Execution validate of goal org.apache.maven.plugins:maven-checkstyle-plugin:2.16:check failed. NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.16:check (validate) on project yyy-1: Execution validate of goal org.apache.maven.plugins:maven-checkstyle-plugin:2.16:check failed.
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)
    ...
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:185)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    ...
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution validate of goal org.apache.maven.plugins:maven-checkstyle-plugin:2.16:check failed.
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 11 more
Caused by: java.lang.NullPointerException
    at com.puppycrawl.tools.checkstyle.checks.javadoc.AbstractJavadocCheck.visitToken(AbstractJavadocCheck.java:182)
    ...
    at com.puppycrawl.tools.checkstyle.Checker.process(Checker.java:265)
    at org.apache.maven.plugin.checkstyle.exec.DefaultCheckstyleExecutor.executeCheckstyle(DefaultCheckstyleExecutor.java:252)
    at org.apache.maven.plugin.checkstyle.CheckstyleViolationCheckMojo.execute(CheckstyleViolationCheckMojo.java:538)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    ... 12 more

or

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.16:check (validate) on project xxx-2: You have 1 Checkstyle violation. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.16:check (validate) on project xxx-2: You have 1 Checkstyle violation.
    ...
    at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:185)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    ...
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.maven.plugin.MojoFailureException: You have 1 Checkstyle violation.
    at org.apache.maven.plugin.checkstyle.CheckstyleViolationCheckMojo.execute(CheckstyleViolationCheckMojo.java:588)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 11 more
like image 703
aholub7x Avatar asked Oct 29 '25 15:10

aholub7x


1 Answers

Checkstyle up to version 6.11 didn't have even simple thread safety. Javadoc checks were using static cache shared across all executions of Checkstyle in single JVM.

From version 6.11 on I've replaced static cache with thread-local cache which is equally fast, but gives basic thread safety. It makes possible to use -T option with Maven and Checkstyle.

like image 112
Michal Kordas Avatar answered Oct 31 '25 04:10

Michal Kordas