Nie udało się wykonać celu org.apache.maven.plugins: maven-compiler-plugin: 2.3.2: compile (default-compile)

134

Używam Maven 3.0.5 i Spring Tool Source 3.2 z zainstalowaną wtyczką Maven. Kiedy próbuję wykonać „Uruchom jako ---> instalacja Mavena”, pojawia się następujący błąd:

[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

Poniżej mój 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>

Podczas instalacji mavena moim celem jest war:warwykonanie WOJNY mojej aplikacji.

Rushi Shah
źródło
upewnij się, że używasz java 8
Archmede
2
@EugeneHoza codehaus JIRA jest zamknięty, a Twój link nie działa. Czy widzisz teraz, dlaczego linki nigdy nie powinny być jedyną informacją?
naXa
Otrzymałem ten błąd podczas przechodzenia ze wiosny 2.2.7 do 2.3.1
Ravi Parekh

Odpowiedzi:

141

Usunięcie pełnego .m2/repositoryrepozytorium lokalnego rozwiązało mój problem.

Albo musisz dokładnie wiedzieć, jakich wtyczek używasz, wraz z ich zależnościami, ponieważ jedna z wtyczek napotkała problem podczas pobierania.

Prateek Batla
źródło
2
Usunąłem
Zmieniłem nazwę mojego „.M2 / Repozytorium”, co najmniej nie generuje błędu… zobaczmy.
InfantPro'Aravind '23
14
powinien być usuwany, .m2/repositorywięc nie usuwasz settings.xmlw .m2reż
Mike D
3
rm -rf rm -rf ~/.m2/repository/org/apache/pracuje dla mnie.
wener
Podobnie, jak zasugerował @wener, usunąłem folder ~ / .m2 \ repository \ org \ apache \ maven i pracowałem dla mnie.
Edu Costa,
124

Usunięcie pełnego repozytorium lokalnego .m2 rozwiązało również mój problem.

Jeśli nie wiesz, gdzie to jest, lokalizacje to:

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
źródło
4
Zwróć uwagę, że w systemie Windows wpisywanie %USERPROFILE%prowadzi do katalogu profilu, w którym .m2znajduje się folder.
MC Emperor
Czy ktoś wie, dlaczego tak się dzieje? Mam ten sam problem i usunięcie katalogu go rozwiązuje.
emmmphd
1
@MCEmperor Thanks! Znalazłem, usunęło go i działa teraz.
DIRTY DAVE
49

Dodaję więcej punktów do rozwiązania autorstwa @Rushi Shah

mvn clean install -X pomaga zidentyfikować pierwotną przyczynę.

Niektóre z ważnych faz cyklu życia kompilacji Maven to:

clean- projekt jest czysty ze wszystkich artefaktów, które pochodziły z poprzednich kompilacji compile- projekt jest kompilowany do katalogu / target katalogu głównego projektu install- spakowane archiwum jest kopiowane do lokalnego repozytorium mavena (można to znaleźć w katalogu domowym twojego użytkownika w /.m2) test- testy jednostkowe są run package- skompilowane źródła są pakowane do archiwum (domyślnie JAR)

Znacznik 1.6 pod tagiem odnosi się do wersji JDK. Musimy zapewnić odpowiednią wersję jdk w naszym środowisku deweloperskim lub zmienić wartość na 1.7 lub 1.5 lub cokolwiek innego, jeśli aplikacja może być obsługiwana w tej wersji JDK.

<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>

Pełne informacje na temat cyklu życia kompilacji Maven można znaleźć w witrynie Maven.

Sree Rama
źródło
31

Miałem ten sam problem, sprawdź zainstalowany jre używany przez Mavena w konfiguracji uruchamiania ...

W twoim przypadku myślę, że maven-compiler-plugin: jar: 2.3.2 potrzebuje jdk1.6

Aby to zrobić: Uruchom Konfiguracja> YOUR_MAVEN_BUILD> JRE> Alternatywne środowisko JREwprowadź opis obrazu tutaj

Mam nadzieję że to pomoże.

jmj
źródło
1
to jest najlepsze rozwiązanie, również działało dla mnie, nie trzeba usuwać plików, myślę, że to właśnie jest przyczyną problemu
Dunken
musisz poinformować o tym świat. ponieważ nawet jeśli ustawię jre na jdk w preferencjach windows->, to nie działa. ale twoja odpowiedź działa.
boski
21

Czasami jest to spowodowane tym, że projekt wskazuje na JRE, a nie JDK, więc spróbuj tego,

1. Kliknij prawym przyciskiem myszy projekt -> Ścieżka kompilacji -> Konfiguruj ścieżkę kompilacji -> Dodaj bibliotekę -> Biblioteka systemowa JRE -> Środowiska -> Zainstalowane środowiska JRE -> Wskaż folder java na dysku c: (Windows ) i wybierz folder JDK i ok.

2. Usuń już obecne środowisko JRE ze ścieżki kompilacji.

Ashutosh S.
źródło
Działało idealnie !! Aktualizacja: w środowisku Eclipse Java Oxygen na stronie „Zainstalowane środowiska JRE” należy kliknąć przycisk „Dodaj ...” przed wskazaniem folderu
gotube
Tak, to zadziałało również dla mnie. Myślę, że to szybkie rozwiązanie, aby usunąć istniejące środowisko JRE i dodać je ponownie.
Nikhil Lotke
6

Zwykle wystarczy zdefiniować wtyczkę maven-compiler-plugin. dodaj poniższe do definicji wtyczki kompilatora.

<plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>              
</plugin>
tapha
źródło
Tak, dodałem „<inherited> true </inherited>” do mojego pom.xml i kiedy go zapisuję, otrzymuję następujący wyjątek: Wystąpił błąd wewnętrzny podczas: „Updating Maven Dependencies”. org / apache / maven / shared / filtering / MavenFilteringException
Rushi Shah
8
W końcu otrzymałem rozwiązanie, uruchamiając następującą komendę: mvn clean install -X. Dało mi to podstawową przyczynę. Właściwie mój JAVA_HOME wskazywał na JRE_HOME, a kompilator w maven-compiler-plugin, którego szukał, jest dostarczany tylko z JDK. Więc zainstalowałem JDK i zaktualizowałem mój JAVA_HOME.
Rushi Shah
nie pomaga: [OSTRZEŻENIE] Nie można automatycznie wykryć ścieżki „javac” przy użyciu „javac” ze środowiska.
MemLeak
6

Czasami ten problem pojawia się, ponieważ wersja java.version, o której wspomniałeś w POM.xml, nie jest tą zainstalowaną na twoim komputerze.

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

Upewnij się, że w swoim pom.xml podajesz dokładnie tę samą wersję, co wersja jdk i jre obecna na twoim komputerze.

Harshad Holkar
źródło
Dziękuję… Ta odpowiedź dała mi do zrozumienia, że ​​w moim przypadku problem miał coś wspólnego z wersją Javy. Okazuje się, że na macOS mam zainstalowaną Javę 9 oraz Javę 8. Usunięta Java 9, teraz Maven działa dobrze. Zobacz moją odpowiedź .
Basil Bourque
5

Miałem kiedyś ten problem i tak go rozwiązałem:

  • Krok 1 Wyczyść plik
    .m2 / repozytorium

  • Step-2: Wykonaj polecenie maven (na przykład mvn clean verify) z terminala w bieżącej lokalizacji projektu (gdzie istnieje plik pom.xml twojego projektu) zamiast uruchamiać maven z eclipse.
  • nityanarayan44
    źródło
    To pogorszyło sprawę
    karlihnos
    2

    Właściwie, jeśli nie chcesz usuwać swojego lokalnego .m2 / repository / ... i masz pobraną kopię Mavena z Apache, możesz poprosić Eclipse / STS o użycie tego zewnętrznego Mavena i edytować {maven} \ conf \ settings.xml, aby wskazać lokalnemu repozytorium nowe, puste miejsce.

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

    Oczywiście, oprócz poprzedniej lokalizacji .m2, będziesz mieć nowe repozytorium ze wszystkimi pobranymi źródłami Mavena.

    wprowadź opis obrazu tutaj

    iowatiger08
    źródło
    2

    sprawdź endorsed.dirtag właściwości w swoim pom.xml.
    Miałem też ten problem i naprawiłem go modyfikując właściwość.

    Przykład:

    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>  
    
    Venkad
    źródło
    2

    Niekompatybilna Java 9

    Wystąpił ten błąd podczas próby wywołania mvn installprojektu.

    Zainstalowałem Javę 9 na macOS, a także Java 8 Update 144. Mój projekt Maven najwyraźniej wywoływał Javę 9 i zawodził. Usunąłem Javę 9 z mojego Maca, pozostawiając tylko Javę 8 na miejscu. Maven z radością buduje mój projekt do pomyślnego zakończenia.

    Korzystanie z Apache Maven 3.5.0 w systemie macOS Sierra.

    Basil Bourque
    źródło
    1
    • Pobierz jar wtyczki kompilatora maven z centralnego repozytorium i spróbuj
    • Jeśli nadal nie można sprawdzić wersji jdk, to dlatego, że aplikacja jest zbudowana na wersji diff jdk
    Divya Guduru
    źródło
    1

    Dla mnie ponowne uruchomienie Eclipse pozwoliło pozbyć się tego błędu!

    sau123
    źródło
    1

    Myślę, że masz dwa sposoby rozwiązania tego problemu

    01. Ustaw właściwości

    • Ustaw ścieżkę budowania Java jako jdk

    Kliknij prawym przyciskiem myszy projekt -> Ścieżka budowania Java -> Wybierz zakładkę Biblioteki -> Wybierz bibliotekę systemową JRE -> Kliknij przycisk Edytuj -> Kliknij Zainstalowane JRE -> dodaj zaznaczenie do pola -> kliknij Edytuj -> Kliknij Katalog -> Wybierz jdk

    • Określ rodzaj zainstalowanej wersji jdk

    Kliknij prawym przyciskiem myszy projekt -> Aspekty projektu -> zaznacz java i wybierz wersję java -> Zastosuj -> OK

    • Zaktualizuj projekt

    Kliknij prawym przyciskiem myszy „projekt” -> Idź do Maven-> Aktualizuj

    02.Usuń plik .m2

    Jeśli nie możesz rozwiązać problemu za pomocą powyższych dwóch tematów, wykonaj tę akcję Zamknij projekt. Usuń pełny folder .m2

    Jak ukarać mandatem plik .m2 (Windows)

    Przejdź do Dysk lokalny (C) -> Użytkownicy -> Wybierz nazwę swojego komputera -> plik. M2

    JustCode
    źródło
    1

    Usuń poniższy kod z pom.xml lub popraw wersję Java, aby działała.

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    
    Sankara
    źródło
    To zadziałało dla mnie. Ale jedno pytanie na ten temat, jeśli nie masz nic przeciwko. Czy to dlatego, że obniżamy wersję kompilatora. Ale czy spowoduje to jakiś problem?
    Kishan Bheemajiyani
    0

    Może możesz dodać tę zależność do swojego pom.xml. Używam tej metody i rozwiązuję problem!

    <dependency> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.3.2</version> 
    </dependency>
    
    FreeWong
    źródło
    0

    dla nowych użytkowników systemu Mac OS, znajdź folder .m2 i usuń go, znajduje się w katalogu /Users/.m2 .

    nie zobaczysz folderu .m2 w Finderze (Eksploratorze plików), dla tego użytkownika to polecenie, aby wyświetlić ukryte pliki Mac

    $ defaults napisz com.apple.finder AppleShowAllFiles TRUE

    po tym naciśnij alt i kliknij finder-> uruchom ponownie, możesz zobaczyć /Users/.m2

    aby ponownie ukryć pliki, po prostu użyj tego $ defaults napisz com.apple.finder AppleShowAllFiles false

    Swadeshi
    źródło
    0

    Zmieniłem nazwę katalogu .m2, to jeszcze nie pomogło, więc zainstalowałem najnowszy sdk / jdk i zrestartowałem eclipse. To zadziałało.

    Wygląda na to, że potrzebny był SDK, a zainstalowałem tylko JRE.

    Co jest dziwne, ponieważ eclipse działało na tej samej maszynie dla innego, starszego projektu.

    Zaimportowałem drugi projekt mavena, a instalacja Run / maven zakończyła się dopiero po ponownym uruchomieniu eclipse. Może więc konieczne było ponowne uruchomienie zaćmienia.

    Importowanie kolejnego projektu i musiałem to zrobić maven installdwa razy, zanim zadziałało, mimo że ponownie uruchomiłem zaćmienie.

    Sumator
    źródło
    0

    To naprawdę niewiarygodne, aby być zmuszonym do wymazania całej zawartości .m2 / repozytorium. Proponuję wpisać to polecenie (w systemie Windows):

    mvn clean

    mvn -X pakiet> my_log_file.log

    Ostatnie polecenie włącz opcję debugowania i przekierowuje dane wyjściowe do pliku. Otwórz plik i wyszukaj słowa kluczowe ERROR lub WARNING. Możesz znaleźć tego rodzaju wyrażenie:

    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
    

    W tym przypadku należy zrozumieć, że wystarczy usunąć katalog C: \ Users \ vifie.m2 \ repository \ net \ java \ jvnet-parent \ 3

    Ponownie uruchom kompilację, pakowanie i tak dalej:

    pakiet mvn

    OSTRZEŻENIE znika tylko dlatego, że usunąłeś plik POM uszkodzony w dobrej lokalizacji i ponownie go pobrałeś. Zwykle nowy plik POM jest lepszy.

    Często tryb debugowania wyświetla wiadomości z bardziej szczegółowymi informacjami.

    Dlaczego przekierowuję dziennik do pliku: po prostu dlatego, że w konsoli Windows nie ma wystarczającego bufora do przechowywania wszystkich wierszy i często nie widać wszystkich wierszy.

    Vifier Lockla
    źródło
    0

    Wypróbowaliśmy wszystko, co do tej pory wymieniono, i nadal się nie udało. Wspomniał również o błędzie

    (default-war) w projekcie utilsJava: Błąd podczas tworzenia WAR: wymagany jest atrybut webxml

    Rozwiązaniem, które ostatecznie to naprawiło, było dodanie tego do POM:

    <failOnMissingWebXml>false</failOnMissingWebXml>
    

    Jak wspomniano tutaj Błąd asemblacji WAR - atrybut webxml jest wymagany

    Nasz POM zawiera teraz:

    <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>  
    
    RickInLosAngeles
    źródło
    0

    Dzieje się tak, ponieważ Twój Jenkins nie może znaleźć pliku ustawień. Jeśli usunięcie .m2 nie działa, wypróbuj poniższe rozwiązanie

    Przejdź do konfiguracji JOB

    niż do sekcji Build

    Dodaj krok budowy: - Przywołaj cel maven najwyższego poziomu i wypełnij wersję Mavena i cel

    niż kliknij przycisk Advance i wspomnij ścieżkę pliku ustawień , jak wspomniano na obrazku wprowadź opis obrazu tutaj

    Narender Gusain
    źródło
    0

    Dzieje się tak, ponieważ Twój Maven nie może znaleźć pliku ustawień. Jeśli usunięcie .m2 nie działa, wypróbuj poniższe rozwiązanie

    Przejdź do konfiguracji JOB

    niż do sekcji Build

    Dodaj krok budowy: - Przywołaj cel maven najwyższego poziomu i wypełnij wersję Mavena i cel

    niż kliknij przycisk Advance i wspomnij ścieżkę pliku ustawień , jak wspomniano na obrazku wprowadź opis obrazu tutaj

    Narender Gusain
    źródło
    -2

    Miałem ten sam problem i poza stawianiem konfiguracji powyższych postów

                <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>
    

    w elemencie plugins w pom.xml. Myślę, że problemem był brak wykonania -> cel „endpoints_get_discovery_doc” w niektórych przypadkach, takich jak mój, więc to zadziałało.

    MRTC
    źródło
    Chociaż ten fragment kodu może rozwiązać problem, dołączenie wyjaśnienia naprawdę pomaga poprawić jakość Twojego posta. Pamiętaj, że odpowiadasz na pytanie do czytelników w przyszłości, a osoby te mogą nie znać powodów, dla których zaproponowałeś kod.
    yennsarah
    @Amy dzięki za wskazówkę, próbowałem wyjaśnić i mam nadzieję, że mi się udało.
    MRTC