Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven Build Failure - Compiler Plugin

I am trying to build a project in Maven and am experiencing the following error:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project webgoat-container: Fatal error compiling: java.lang.ExceptionInInitializerError: Unable to make field private com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors com.sun.tools.javac.processing.JavacProcessingEnvironment.discoveredProcs accessible: module jdk.compiler does not "opens com.sun.tools.javac.processing" to unnamed module @5d01a2eb -> [Help 1]

The pom.xml of the project is:

<modelVersion>4.0.0</modelVersion>
<groupId>org.owasp.webgoat</groupId>
<artifactId>webgoat-parent</artifactId>
<packaging>pom</packaging>
<version>8.2.1-SNAPSHOT</version>

<name>WebGoat Parent Pom</name>
<description>Parent Pom for the WebGoat Project. A deliberately insecure Web Application</description>
<inceptionYear>2006</inceptionYear>
<url>https://github.com/WebGoat/WebGoat</url>

<organization>
    <name>OWASP</name>
    <url>https://github.com/WebGoat/WebGoat/</url>
</organization>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.3</version>
</parent>

<licenses>
    <license>
        <name>GNU General Public License, version 2</name>
        <url>https://www.gnu.org/licenses/gpl-2.0.txt</url>
    </license>
</licenses>

<developers>
    <developer>
        <id>mayhew64</id>
        <name>Bruce Mayhew</name>
        <email>[email protected]</email>
        <organization>OWASP</organization>
        <organizationUrl>https://github.com/WebGoat/WebGoat</organizationUrl>
    </developer>
    <developer>
        <id>nbaars</id>
        <name>Nanne Baars</name>
        <email>[email protected]</email>
        <organizationUrl>https://github.com/nbaars</organizationUrl>
        <timezone>Europe/Amsterdam</timezone>
    </developer>
    <developer>
        <id>misfir3</id>
        <name>Jason White</name>
        <email>[email protected]</email>
    </developer>
    <developer>
        <id>zubcevic</id>
        <name>René Zubcevic</name>
        <email>[email protected]</email>
    </developer>
    <developer>
        <id>jwayman</id>
        <name>Jeff Wayman</name>
        <email/>
    </developer>
    <developer>
        <id>dcowden</id>
        <name>Dave Cowden</name>
        <email/>
    </developer>
    <developer>
        <id>lawson89</id>
        <name>Richard Lawson</name>
        <email/>
    </developer>
    <developer>
        <id>dougmorato</id>
        <name>Doug Morato</name>
        <email>[email protected]</email>
        <organization>OWASP</organization>
        <organizationUrl>https://github.com/dougmorato</organizationUrl>
        <timezone>America/New_York</timezone>
        <properties>
            <picUrl>https://avatars2.githubusercontent.com/u/9654?v=3&amp;s=150</picUrl>
        </properties>
    </developer>
</developers>

<mailingLists>
    <mailingList>
        <name>OWASP WebGoat Mailing List</name>
        <subscribe>https://lists.owasp.org/mailman/listinfo/owasp-webgoat</subscribe>
        <unsubscribe>[email protected]</unsubscribe>
        <post>[email protected]</post>
        <archive>http://lists.owasp.org/pipermail/owasp-webgoat/</archive>
    </mailingList>
</mailingLists>

<scm>
    <url>https://github.com/WebGoat/WebGoat</url>
    <connection>scm:git:[email protected]:WebGoat/WebGoat.git</connection>
    <developerConnection>scm:git:[email protected]:WebGoat/WebGoat.git</developerConnection>
    <tag>HEAD</tag>
</scm>

<issueManagement>
    <system>Github Issues</system>
    <url>https://github.com/WebGoat/WebGoat/issues</url>
</issueManagement>

<ciManagement>
    <system>Travis CI</system>
    <url>https://travis-ci.org/WebGoat/WebGoat</url>
</ciManagement>

<properties>
    <!-- Use UTF-8 Encoding -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>

    <!-- This build number will be ubdated by Travis-CI -->
    <build.number>build</build.number>

    <!-- Shared properties with plugins and version numbers across submodules-->
    <activation.version>1.1.1</activation.version>
    <commons-collections.version>3.2.1</commons-collections.version>
    <commons-lang3.version>3.4</commons-lang3.version>
    <commons-io.version>2.6</commons-io.version>
    <guava.version>30.1-jre</guava.version>
    <lombok.version>1.18.4</lombok.version>
    <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
    <maven-failsafe-plugin.version>2.22.0</maven-failsafe-plugin.version>
    <maven-jar-plugin.version>3.1.2</maven-jar-plugin.version>
    <maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
    <maven-source-plugin.version>3.1.0</maven-source-plugin.version>
    <maven-surefire-plugin.version>3.0.0-M4</maven-surefire-plugin.version>
    <revision>8.2.0-SNAPSHOT</revision>
</properties>

<modules>
    <module>webgoat-container</module>
    <module>webgoat-lessons</module>
    <module>webgoat-server</module>
    <module>webwolf</module>
    <module>webgoat-integration-tests</module>
    <module>docker</module><!-- copy required jars in preparation of docker all-in-one build -->
</modules>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-exec</artifactId>
        <version>1.3</version>
    </dependency>
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>flatten-maven-plugin</artifactId>
            <version>1.2.5</version>
            <configuration>
            </configuration>
            <executions>
                <execution>
                    <id>flatten</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>flatten</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>11</source>
                <target>11</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <encoding>UTF-8</encoding>
                <consoleOutput>true</consoleOutput>
                <failsOnError>true</failsOnError>
                <configLocation>config/checkstyle/checkstyle.xml</configLocation>
                <suppressionsLocation>config/checkstyle/suppressions.xml</suppressionsLocation>
                <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>3.14.0</version>
            <configuration>
                <targetJdk>11</targetJdk>
                <failurePriority>1</failurePriority><!-- 5 means fail even on the lowest priority, 0 means never fail -->
                <rulesets>
                    <!--suppress UnresolvedMavenProperty -->
                    <ruleset>${maven.multiModuleProjectDirectory}/config/pmd/pmd-ruleset.xml</ruleset>
                </rulesets>
                <failOnViolation>true</failOnViolation>
                <printFailingErrors>true</printFailingErrors>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>check</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>owasp</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.owasp</groupId>
                    <artifactId>dependency-check-maven</artifactId>
                    <version>5.3.2</version>
                    <configuration>
                        <failBuildOnCVSS>7</failBuildOnCVSS>
                        <skipProvidedScope>true</skipProvidedScope>
                        <skipRuntimeScope>true</skipRuntimeScope>
                        <suppressionFiles>
                            <!--suppress UnresolvedMavenProperty -->
                            <suppressionFile>
                                ${maven.multiModuleProjectDirectory}/config/dependency-check/project-suppression.xml
                            </suppressionFile>
                        </suppressionFiles>
                    </configuration>
                    <executions>
                        <execution>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

<repositories>
    <repository>
        <id>central</id>
        <url>https://repo.maven.apache.org/maven2</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>central</id>
        <url>https://repo.maven.apache.org/maven2</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

mvn -v output:

Maven home: /Users/tom/apache-maven-3.6.3
Java version: 16, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: "mac"

And my $JAVA_HOME is set to:

% echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home

I believe that there is an issue with Maven not knowing where my correct javac is, but I'm not sure what I need to edit/add in the pom.xml file to make sure that it does know. I verified that javac is version 16.

like image 843
eliteparakeet Avatar asked Mar 31 '21 18:03

eliteparakeet


People also ask

Does Maven require compiler plugin?

Maven Compiler Plugin might be the most important plugin in Maven. It is used to compile the sources of your project, which transform Java files ( *. java ) into class files ( *.

How do I resolve MojoExecutionException?

The MojoExecutionException should not appear after that. Some Eclipse versions have this problem to refresh the target folder. In this case, Refresh the project just after the "Maven Install".

How do I use the compiler plugin with Maven?

The goals for the Compiler Plugin are bound to their respective phases in the build lifecycle. So to compile your sources, you need only to tell maven until which lifecycle to execute. The above command will execute both compiler:compile and compiler:testCompile since the compile phase happens a few phases before the test-compile phase.

Is it possible to build malformed projects in Maven?

For this reason, future Maven versions might no longer support building such malformed projects. org.apache.maven.plugins:maven.compiler. The plugin is a plugin that can be added by “Add Denpendency”.

How to fix Maven build issue in Eclipse?

How to fix Maven build issue in Eclipse? Perform maven-clean-install to fix any Java Dependency Issue Apache Maven is a Software Project Management tool. Based on the concept of a Project Object Model ( POM ), Maven can manage a project’s build, reporting and documentation from a central piece of information.

How do I compile my sources with the compiler plugin?

The goals for the Compiler Plugin are bound to their respective phases in the build lifecycle. So to compile your sources, you need only to tell maven until which lifecycle to execute. The following will compile your sources:


Video Answer


2 Answers

Steps to resolve :

  1. Do mvn --version : Maven home: /Applications/apache-maven-3.8.1 Java version: 1.16.0_291, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/jre Default locale: en_IN, platform encoding: UTF-8 OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: "mac"

  2. If your Java version if different from what is project expecting like in my case 1.8 then change setting in environment variables:

nano ~/.zshenv -> append "-v 1.8" mention the version name.

here .zshenv file :


export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

export M2_HOME=/usr/local/Cellar/maven/3.8.1

export PATH=$PATH:$M2_HOME/bin


Do source ~/.zshenv

Now check again : mvn --version : Maven home: /Applications/apache-maven-3.8.1 Java version: 1.8.0_291, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/jre Default locale: en_IN, platform encoding: UTF-8 OS name: "mac os x", version: "10.15.7", arch: "x86_64", family: "mac"

You will see version is changed to 1.8

Now build the project.

like image 154
Vipul Gupta Avatar answered Oct 11 '22 11:10

Vipul Gupta


Update your Lombok version to the latest.

like image 31
Methmal Godage Avatar answered Oct 11 '22 13:10

Methmal Godage