148

I am using Maven 3.0.5 and Spring Tool Source 3.2 with Maven plugin installed. When I try to do 'Run As---> Maven install', I am getting the following error:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Spring Social Twitter4J Sample 1.0.0
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven.plugins:maven-war-plugin:jar:2.1.1 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[WARNING] The POM for org.apache.maven.plugins:maven-install-plugin:jar:2.3.1 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ spring-social-twitter4j ---
[debug] execute contextualize
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 15 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ spring-social-twitter4j ---
[WARNING] The POM for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
Jun 21, 2013 2:14:32 AM org.sonatype.guice.bean.reflect.Logs$JULSink warn
WARNING: Error injecting: org.apache.maven.plugin.CompilerMojo
**java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/CompilerException**
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
    at java.lang.Class.getDeclaredConstructors(Unknown Source)
    at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:245)
    at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:98)
    at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:629)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:831)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:758)
    at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:255)
    at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:204)
    at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:954)
    at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:987)
    at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:950)
    at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1000)
    at org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:45)
    at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:84)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:52)
    at com.google.inject.internal.ProviderInternalFactory$1.call(ProviderInternalFactory.java:70)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:100)
    at org.sonatype.guice.plexus.lifecycles.PlexusLifecycleManager.onProvision(PlexusLifecycleManager.java:138)
    at com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision(ProvisionListenerStackCallback.java:108)
    at com.google.inject.internal.ProvisionListenerStackCallback.provision(ProvisionListenerStackCallback.java:55)
    at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:68)
    at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
    at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:965)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1011)
    at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:961)
    at com.google.inject.Scopes$1$1.get(Scopes.java:59)
    at org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:83)
    at org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:49)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:253)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:245)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:455)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:92)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    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:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.compiler.CompilerException
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
    ... 54 more

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.749s
[INFO] Finished at: Fri Jun 21 02:14:32 IST 2013
[INFO] Final Memory: 4M/15M
[INFO] ------------------------------------------------------------------------
**[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project spring-social-twitter4j: Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile failed: A required class was missing while executing org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile: org/codehaus/plexus/compiler/CompilerException**
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.apache.maven.plugins:maven-compiler-plugin:2.3.2
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/Users/SS%20Computer/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar
[ERROR] urls[1] = file:/C:/Users/SS%20Computer/.m2/repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR] 
[ERROR] -----------------------------------------------------: org.codehaus.plexus.compiler.CompilerException
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

Please find below my pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.springframework.social.samples</groupId>
    <artifactId>spring-social-twitter4j</artifactId>
    <name>Spring Social Twitter4J Sample</name>
    <packaging>war</packaging>
    <version>1.0.0</version>
    <properties>
        <java-version>1.6</java-version>
        <org.springframework.social-version>1.1.0.BUILD-SNAPSHOT</org.springframework.social-version>
        <org.springframework-version>3.2.1.RELEASE</org.springframework-version>
        <org.springframework.security-version>3.1.3.RELEASE</org.springframework.security-version>
        <org.slf4j-version>1.7.2</org.slf4j-version>
    </properties>
    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-version}</version>
            <exclusions>
                <!-- Exclude Commons Logging in favor of SLF4j -->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                 </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>               
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>${org.springframework.security-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.social</groupId>
            <artifactId>spring-social-core</artifactId>
            <version>${org.springframework.social-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.social</groupId>
            <artifactId>spring-social-web</artifactId>
            <version>${org.springframework.social-version}</version>
        </dependency>

        <!-- Twitter4J -->
        <dependency>
            <groupId>org.twitter4j</groupId>
            <artifactId>twitter4j-core</artifactId>
            <version>2.2.3</version>
        </dependency>

        <!-- JSR 303 with Hibernate Validator -->
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.1.0.Final</version>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${org.slf4j-version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${org.slf4j-version}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.3.159</version>
        </dependency>

        <!-- @Inject -->
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

        <!-- CGLIB, only required and used for @Configuration usage -->
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>2.2</version>
        </dependency>

        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.web</groupId>
            <artifactId>jstl-impl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>org.springframework.maven.release</id>
            <name>Spring Maven Release Repository</name>
            <url>http://maven.springframework.org/release</url>
            <releases><enabled>true</enabled></releases>
            <snapshots><enabled>false</enabled></snapshots>
        </repository>
        <!-- For testing against latest Spring snapshots -->
        <repository>
            <id>org.springframework.maven.snapshot</id>
            <name>Spring Maven Snapshot Repository</name>
            <url>http://maven.springframework.org/snapshot</url>
            <releases><enabled>false</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <!-- For developing against latest Spring milestones -->
        <repository>
            <id>org.springframework.maven.milestone</id>
            <name>Spring Maven Milestone Repository</name>
            <url>http://maven.springframework.org/milestone</url>
            <snapshots><enabled>false</enabled></snapshots>
        </repository>
    </repositories>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>                
                <configuration>
                    <source>${java-version}</source>
                    <target>${java-version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <warName>spring-social-twitter4j</warName>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>tomcat-maven-plugin</artifactId>
                <version>1.1</version>
            </plugin>
        </plugins>
    </build>
</project>

During maven install my goal is war:war to make WAR of my application.

Elrond_EGLDer
  • 47,430
  • 25
  • 189
  • 180
Rushi Shah
  • 1,761
  • 2
  • 12
  • 9
  • See http://jira.codehaus.org/browse/MRESOURCES-176 – Eugene Hoza Jan 16 '14 at 14:25
  • make sure you're using java 8 – Archmede May 11 '17 at 19:46
  • 2
    @EugeneHoza codehaus JIRA is closed and your link is dead. Do you see now why links should never be the only piece of information ? – naXa Apr 03 '18 at 11:55
  • I got this error while moving from Spring 2.2.7 to 2.3.1 – Ravi Parekh Jun 16 '20 at 16:12
  • Check your java version, whether the one you have used in the project is the same as the one you've configured in the project directory. Check whether the java home variable, jre home variable and path variables are also set properly. – Muaz Nov 24 '20 at 03:41

25 Answers25

157

Deleting full .m2/repository local repository solved my problem.

Or else you need to know what plugins are you using exactly with their dependencies as one of the plugin suffered a problem while downloading.

lrkwz
  • 5,149
  • 3
  • 31
  • 50
Prateek Batla
  • 1,805
  • 1
  • 10
  • 8
128

Deleting full .m2 local repository solved my problem, too.

If you don't know where it is, the locations are:

Unix/Mac OS X – ~/.m2/repository
Windows – C:\Documents and Settings\{your-username}\.m2\repository 
        ( %USERPROFILE%\.m2\repository too, as suggested by **MC Empero** )
Lucas Gomes
  • 1,439
  • 1
  • 9
  • 5
57

I am adding more points to the solution by @Rushi Shah

mvn clean install -X helps to identify the root cause.

Some of the important phases of Maven build lifecycle are:

clean – the project is clean of all artifacts that came from previous compilations compile – the project is compiled into /target directory of project root install – packaged archive is copied into local maven repository (could in your user's home directory under /.m2) test – unit tests are run package – compiled sources are packaged into archive (JAR by default)

The 1.6 under tag refers to JDK version. We need to ensure that proper jdk version in our dev environment or change the value to 1.7 or 1.5 or whatever if the application can be supported in that JDK version.

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>

We can find the complete details on Maven build lifecycle in Maven site.

bugrahan
  • 39
  • 1
  • 9
Sree Rama
  • 1,116
  • 11
  • 24
32

I had the same problem, check the installed jre used by Maven in your Run Configuration...

In your case, I think that the maven-compiler-plugin:jar:2.3.2 needs a jdk1.6

To do this : Run Configuration > YOUR_MAVEN_BUILD > JRE > Alternate JREenter image description here

Hope this helps.

jmj
  • 718
  • 8
  • 17
  • 1
    this is the best solution,also worked for me no need to delete files i think this is actually what was causing the problem – Dunken Aug 21 '16 at 12:54
  • you must let the world know about this. because even when i set jre to jdk in windows-> preferences, it doesn't work. but your answer works. – divine Feb 25 '17 at 00:22
22

Sometimes it is caused due to the project points to JRE rather than JDK.So try this,

1.Right Click on project -->Build Path --> Configure Build Path -->Add Library -->JRE System Library -->Environments--> Installed JREs-->Point to java folder in c: drive (Windows) and select JDK folder and ok.

2.Remove the already present JRE from build path.

Ashutosh S
  • 469
  • 5
  • 8
  • Worked perfectly!! Update: In Eclipse Java Oxygen, on the "Installed JREs" page, you have to click "Add..." before pointing to the folder – gotube Nov 13 '17 at 14:17
  • Yes, this worked for me as well. I think its a quick solution to remove existing JRE and add again. – Nikhil Lotke Dec 07 '19 at 07:47
7

Usually, define maven-compiler-plugin is sufficient enough. add the following to your compiler plugin definition.

<plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>              
</plugin>
tapha
  • 96
  • 1
  • 5
  • Yes I added "true" in my pom.xml and when I save it, I get the following exception : An internal error occurred during: "Updating Maven Dependencies". org/apache/maven/shared/filtering/MavenFilteringException – Rushi Shah Jun 21 '13 at 16:10
  • 8
    I have finally received the solution by running the following command : mvn clean install -X. It gave me the root cause. Actually my JAVA_HOME was pointing to JRE_HOME and the compiler in maven-compiler-plugin, it was looking for, ships with only JDK. So, I installed JDK and updated my JAVA_HOME. – Rushi Shah Jun 21 '13 at 19:54
  • doesnt help : [WARNING] Unable to autodetect 'javac' path, using 'javac' from the environment. – MemLeak Oct 30 '13 at 16:40
6

Sometimes this issue comes because the java.version which you have mentioned in POM.xml is not the one installed in your machine.

<properties>
    <java.version>1.7</java.version>
</properties>

Ensure you exactly mention the same version in your pom.xml as the jdk and jre version present in your machine.

Harshad Holkar
  • 413
  • 5
  • 13
  • Thank you… This Answer gave me the idea that in my case the problem had something to do with the version of Java. Turns out I had Java 9 as well as Java 8 installed on macOS. Deleted Java 9, now Maven runs well. See [my Answer](https://stackoverflow.com/a/46636459/642706). – Basil Bourque Oct 08 '17 at 21:57
5

I had this problem once, and this is how i resolved it:

  • Step-1 Clean your
    .m2/repository

  • Step-2 execute the maven command(for example mvn clean verify) from the terminal at the current project location(where your project's pom.xml file exist) instead of running maven from eclipse.
  • nityanarayan44
    • 308
    • 3
    • 10
    2

    Actually, if you do not want to delete your local .m2/repository/... and you are have a downloaded copy of Maven from Apache, you can have Eclipse /STS use that external Maven and you can edit the {maven}\conf\settings.xml to point your localRepository to a new empty location.

    <localRepository>C:\java\repository</localRepository>
    

    Of course, you will have a new repository with all of the maven source downloads in addition to your previous .m2 location.

    enter image description here

    iowatiger08
    • 1,804
    • 23
    • 29
    2

    check the property endorsed.dir tag in your pom.xml.
    I also had this problem and I fixed by modifying the property.

    Example:

    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>  
    
    dvhh
    • 4,593
    • 25
    • 32
    venkad
    • 21
    • 1
    2

    Java 9 incompatible

    I got this error when trying to calling mvn install on a project.

    I had installed Java 9 on macOS as well as Java 8 Update 144. My Maven project was apparently invoking Java 9 and failing. Removed Java 9 from my Mac, leaving just Java 8 in place. Maven is now happily building my project to successful completion.

    Using Apache Maven 3.5.0 on macOS Sierra.

    Basil Bourque
    • 218,480
    • 72
    • 657
    • 915
    2

    Either remove the below code from the pom.xml or correct your java version to make it work.

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    
    Sankara
    • 71
    • 1
    • 3
    1
    • Download maven compiler plugin jar from your central repositoy n try
    • If it is still failing check your jdk version, it is because of your application is built on diff jdk version
    1

    For me, restarting Eclipse got rid of this error!

    sau123
    • 343
    • 4
    • 15
    1

    I think you have Two ways to solve this problem

    01. Set Properties

    • Set Java Build Path as jdk

    Right click project ->Java Build Path ->Select Libraries tab ->Select JRE System Library ->Click Edit button ->Click Installed JREs-> add tick to box ->click Edit ->Click Directory->Select jdk

    • Specifi which kind of jdk version you installed

    Right click project ->Project Facets ->tick java and select java version->Apply ->Ok

    • Update project

    Right-click on "project"->Go to Maven->Update

    02.Delete .m2 file

    If you can't solve your problem using above two topic get this action Close your project. Delete your full .m2 folder

    How to fined .m2 file(windows)

    Go to Local Disk(C) ->Users ->Select your PC name ->.m2 file

    Priyantha
    • 3,687
    • 4
    • 21
    • 40
    1

    Maybe there is a file got locked in the target folder

    Collen Zhou
    • 97
    • 1
    • 5
    1

    None of the other answers suggests downloading just the missing plugin.

    Before you delete your whole .m2 repository and re-download all project dependencies and all plugins, you may want to try:

    mvn dependency:resolve-plugins
    

    That will download just the missing plugins.

    egerardus
    • 10,746
    • 11
    • 75
    • 117
    0

    Maybe you can add this dependency to your pom.xml. I use this method and solve the problem!

    <dependency> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.3.2</version> 
    </dependency>
    
    Grainier
    • 1,595
    • 2
    • 16
    • 28
    FreeWong
    • 1
    • 1
    0

    for the new users on Mac os , find out .m2 folder and delete it, its on your /Users/.m2 directory.

    you wont get to see .m2 folder in finder(File Explorer), for this user this command to Show Mac hidden files

    $ defaults write com.apple.finder AppleShowAllFiles TRUE

    after this press alt and click on finder-> relaunch, you can see /Users/.m2

    to hide files again, simply use this $ defaults write com.apple.finder AppleShowAllFiles false

    Swadeshi
    • 1,285
    • 13
    • 31
    0

    I renamed the .m2 directory, this didn't help yet, so I installed the newest sdk/jdk and restarted eclipse. This worked.

    It seems an SDK was needed and I only had installed a JRE.

    Which is weird, because eclipse worked on the same machine for a different older project.

    I imported a second maven project, and Run/maven install did only complete after restarting eclipse. So maybe just a restart of eclipse was necessary.

    Importing yet another project, and had to do maven install twice before it worked even though I had restarted eclipse.

    Adder
    • 5,525
    • 1
    • 18
    • 47
    0

    It's really incredible to be oblige to erase whole .m2/repository content. I suggest to type this command (On Windows) :

    mvn clean

    mvn -X package > my_log_file.log

    The last command enable Debug option et redirect output to a file. Open the file and search ERROR or WARNING key words. You can find this kind of expression :

    DEBUG] =======================================================================
    [WARNING] The POM for javax.servlet:javax.servlet-api:jar:4.0.0 is invalid, transitive dependencies (if any) will not be available: 1 problem was encountered while building the effective model for javax.servlet:javax.servlet-api:4.0.0
    [FATAL] Non-parseable POM C:\Users\vifie\.m2\repository\net\java\jvnet-parent\3\jvnet-parent-3.pom: processing instruction can not have PITarget with reserved xml name (position: END_TAG seen ...</profiles>\n\n</project>\n\n<?xml ... @160:7)  @ C:\Users\vifie\.m2\repository\net\java\jvnet-parent\3\jvnet-parent-3.pom, line 160, column 7
    
    [WARNING] The POM for org.glassfish:javax.json:jar:1.0.4 is invalid, transitive dependencies (if any) will not be available: 1 problem was encountered while building the effective model for org.glassfish:javax.json:[unknown-version]
    [FATAL] Non-parseable POM C:\Users\vifie\.m2\repository\net\java\jvnet-parent\3\jvnet-parent-3.pom: processing instruction can not have PITarget with reserved xml name (position: END_TAG seen ...</profiles>\n\n</project>\n\n<?xml ... @160:7)  @ C:\Users\vifie\.m2\repository\net\java\jvnet-parent\3\jvnet-parent-3.pom, line 160, column 7
    

    It's esay in this case to understand you have just to delete directory C:\Users\vifie.m2\repository\net\java\jvnet-parent\3

    Relaunch compilation, packaging and so on :

    mvn package

    WARNING disappear just because you delete POM file corrupted at the good location and maven re download it. Normally the new POM file is better.

    Often debug mode give you messages with more comprehensive details.

    Why I redirect log to a file : Simply because on Windows console don't have enough buffer to store all lines and often you cannot see all lines.

    Community
    • 1
    • 1
    Vifier Lockla
    • 385
    • 2
    • 6
    0

    We tried everything listed so far and it still failed. The error also mentioned

    (default-war) on project utilsJava: Error assembling WAR: webxml attribute is required

    The solution that finally fixed it was adding this to POM:

    <failOnMissingWebXml>false</failOnMissingWebXml>
    

    As mentioned here Error assembling WAR - webxml attribute is required

    Our POM now contains this:

    <plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>${maven-war-plugin.version}</version>
    <configuration>
    <failOnMissingWebXml>false</failOnMissingWebXml>
    <warName>${project.artifactId}</warName>
    <attachClasses>true</attachClasses>
    </configuration>
    </plugin>  
    
    0

    It is because your Jenkins not able to find setting file. If deleting .m2 not work, try below solution

    Go to your JOB configuration

    than to the Build section

    Add build step :- Invoke top level maven target and fill Maven version and Goal

    than click on Advance button and mention settings file path as mention in image enter image description here

    Narender Gusain
    • 1,801
    • 11
    • 13
    0

    It is because your Maven not able to find settings file. If deleting .m2 not work, try below solution

    Go to your JOB configuration

    than to the Build section

    Add build step :- Invoke top level maven target and fill Maven version and Goal

    than click on Advance button and mention settings file path as mention in image enter image description here

    Narender Gusain
    • 1,801
    • 11
    • 13
    -2

    i had the same problem and besides the above posts' configurations putting

                <plugin>
                <groupId>com.google.appengine</groupId>
                <artifactId>appengine-maven-plugin</artifactId>
                <version>1.9.32</version>
                <configuration>
                    <enableJarClasses>false</enableJarClasses>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>endpoints_get_discovery_doc</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
    

    in the plugins element in pom.xml. i think the problem was absence of execution -> goal "endpoints_get_discovery_doc" in some cases like mine, so this worked for me.

    MRTC
    • 189
    • 1
    • 7
    • While this code snippet may solve the question, [including an explanation](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) really helps to improve the quality of your post. Remember that you are answering the question for readers in the future, and those people might not know the reasons for your code suggestion. – yennsarah Feb 23 '16 at 14:28
    • @Amy thanks for the tip , i tried to explain and i hope i succeeded . – MRTC Feb 28 '16 at 15:27