Не удалось выполнить цель org.apache.maven.plugins: maven-compiler-plugin: 2.3.2: compile (default-compile)

131

Я использую Maven 3.0.5 и Spring Tool Source 3.2 с установленным плагином Maven. Когда я пытаюсь выполнить «Запуск от имени ---> Установка Maven», я получаю следующую ошибку:

[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

Ниже мой 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>

Во время установки maven моя цель - war:warсделать WAR моего приложения.

Руши Шах
источник
См. Jira.codehaus.org/browse/MRESOURCES-176
Юджин Хоза,
убедитесь, что вы используете java 8
Archmede
2
@EugeneHoza codehaus JIRA закрыта, и ваша ссылка мертва. Теперь вы понимаете, почему ссылки никогда не должны быть единственной информацией?
naXa 03
Я получил эту ошибку при переходе с Spring 2.2.7 на 2.3.1
Рави Парех

Ответы:

138

Удаление полного .m2/repositoryлокального репозитория решило мою проблему.

Или вам нужно точно знать, какие плагины вы используете, с их зависимостями, поскольку один из плагинов столкнулся с проблемой при загрузке.

Пратик Батла
источник
2
Я удалил каталог репозиторием / организацией, и после этого все работало нормально
dannrob
Я переименовал свой ".M2 / Repository", он по крайней мере не выдает ошибок .. посмотрим.
InfantPro'Aravind '23 окт.15,
13
должен быть удален, .m2/repositoryчтобы вы не удаляли его settings.xmlв .m2каталоге
Майк Д.
3
rm -rf rm -rf ~/.m2/repository/org/apache/работает для меня.
wener
Подобно тому, что предложил @wener, я удалил папку ~ / .m2 \ repository \ org \ apache \ maven и работал на меня.
Эду Коста
123

Удаление полного локального репозитория .m2 тоже решило мою проблему.

Если вы не знаете, где он находится, это следующие места:

Unix/Mac OS X  ~/.m2/repository
Windows  C:\Documents and Settings\{your-username}\.m2\repository 
        ( %USERPROFILE%\.m2\repository too, as suggested by **MC Empero** )
Лукас Гомеш
источник
3
Обратите внимание, что в Windows ввод текста %USERPROFILE%приведет вас в каталог вашего профиля, в котором находится .m2папка.
MC Emperor
Кто-нибудь знает, почему возникает эта проблема? У меня такая же проблема, и удаление каталога решает ее.
emmmphd 09
@MCEmperor Спасибо! Нашел, удалил, и теперь работает.
DIRTY DAVE,
49

Я добавляю больше очков к решению @Rushi Shah

mvn clean install -X помогает определить основную причину.

Некоторые из важных этапов жизненного цикла сборки Maven:

clean- проект очищен от всех артефактов, которые пришли из предыдущих компиляций compile- проект компилируется в / target каталог корня проекта install- упакованный архив копируется в локальный репозиторий maven (может быть в домашнем каталоге вашего пользователя в /.m2) test- модульные тесты run package- скомпилированные исходники упаковываются в архив (по умолчанию JAR)

Тег 1.6 ниже относится к версии JDK. Нам нужно обеспечить правильную версию jdk в нашей среде разработки или изменить значение на 1,7 или 1,5 или что-то еще, если приложение может поддерживаться в этой версии 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>

Полную информацию о жизненном цикле сборки Maven можно найти на сайте Maven.

Шри Рама
источник
30

У меня была такая же проблема, проверьте установленную jre, используемую Maven в вашей конфигурации запуска ...

В вашем случае я думаю, что maven-compiler-plugin: jar: 2.3.2 нуждается в jdk1.6

Для этого: запустите Configuration> YOUR_MAVEN_BUILD> JRE> Alternate JRE.введите описание изображения здесь

Надеюсь это поможет.

JMJ
источник
1
это лучшее решение, также сработало для меня, мне не нужно удалять файлы, я думаю, что именно это и вызывало проблему
Dunken
вы должны сообщить об этом миру. потому что даже когда я устанавливаю jre на jdk в настройках windows->, это не работает. но ваш ответ работает.
божественный
21

Иногда это вызвано тем, что проект указывает на JRE, а не на JDK. Так что попробуйте это,

1. Щелкните правой кнопкой мыши проект -> Путь сборки -> Настроить путь сборки -> Добавить библиотеку -> Системная библиотека JRE -> Среды -> Установленные JRE -> Укажите папку java на диске c: (Windows ) и выберите папку JDK и ок.

2. Удалите уже существующую JRE из пути сборки.

Ашутош С
источник
Сработало отлично !! Обновление: в Eclipse Java Oxygen на странице «Установленные JRE» вы должны нажать «Добавить ...», прежде чем указывать на папку
gotube
Да, у меня это тоже сработало. Я думаю, что это быстрое решение для удаления существующей JRE и повторного добавления.
Nikhil Lotke
6

Обычно достаточно определить maven-compiler-plugin. добавьте следующее в определение вашего плагина компилятора.

<plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>              
</plugin>
tapha
источник
Да, я добавил «<inherited> true </inherited>» в свой pom.xml, и когда я сохраняю его, я получаю следующее исключение: Внутренняя ошибка произошла во время: «Обновление зависимостей Maven». org / apache / maven / shared / filtering / MavenFilteringException
Rushi Shah
8
Я наконец получил решение, выполнив следующую команду: mvn clean install -X. Это дало мне основную причину. На самом деле мой JAVA_HOME указывал на JRE_HOME, а компилятор в maven-compiler-plugin, который он искал, поставляется только с JDK. Итак, я установил JDK и обновил свой JAVA_HOME.
Rushi Shah
не помогает: [ПРЕДУПРЕЖДЕНИЕ] Невозможно автоматически определить путь 'javac' с помощью 'javac' из среды.
MemLeak
5

Иногда эта проблема возникает из-за того, что java.version, который вы упомянули в POM.xml, не тот, который установлен на вашем компьютере.

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

Убедитесь, что вы точно указали ту же версию в своем pom.xml, что и версии jdk и jre, присутствующие на вашем компьютере.

Харшад Холкар
источник
Спасибо ... Этот ответ натолкнул меня на мысль, что в моем случае проблема как-то связана с версией Java. Оказывается, на macOS была установлена ​​Java 9 и Java 8. Удалена Java 9, теперь Maven работает нормально. Смотрите мой ответ .
Basil
5

Однажды у меня была эта проблема, и вот как я ее решил:

  • Шаг-1 Очистите свой
    .m2 / хранилище

  • Шаг 2: выполните команду maven (например mvn clean verify) с терминала в текущем местоположении проекта (где существует файл pom.xml вашего проекта) вместо запуска maven из eclipse.
  • nityanarayan44
    источник
    Это усугубило ситуацию
    karlihnos
    2

    На самом деле, если вы не хотите удалять свой локальный .m2 / repository / ... и у вас есть загруженная копия Maven с Apache, вы можете использовать Eclipse / STS этот внешний Maven, и вы можете редактировать {maven} \ conf \ settings.xml, чтобы указать ваш localRepository на новое пустое место.

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

    Конечно, у вас будет новый репозиторий со всеми загрузками исходного кода maven в дополнение к вашему предыдущему местоположению .m2.

    введите описание изображения здесь

    iowatiger08
    источник
    2

    проверьте endorsed.dirтег свойства в вашем pom.xml.
    У меня тоже была эта проблема, и я исправил ее, изменив свойство.

    Пример:

    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>  
    venkad
    источник
    2

    Java 9 несовместима

    Я получил эту ошибку при попытке вызова mvn installпроекта.

    Я установил Java 9 на macOS, а также Java 8 Update 144. Мой проект Maven, очевидно, вызывал Java 9 и терпел неудачу. Удалил Java 9 с моего Mac, оставив только Java 8 на месте. Сейчас Maven с радостью доводит мой проект до успешного завершения.

    Использование Apache Maven 3.5.0 в macOS Sierra.

    Василий Бурк
    источник
    1
    • Загрузите jar-файл плагина компилятора maven из центрального репозитория и попробуйте
    • Если по-прежнему не удается проверить версию jdk, это связано с тем, что ваше приложение построено на версии diff jdk
    Дивья Гудуру
    источник
    1

    Для меня перезапуск Eclipse избавил от этой ошибки!

    sau123
    источник
    1

    Я думаю, у вас есть два способа решить эту проблему

    01. Установить свойства

    • Установите путь сборки Java как jdk

    Щелкните правой кнопкой мыши проект -> Путь сборки Java -> Выберите вкладку Библиотеки -> Выберите Системную библиотеку JRE -> Нажмите кнопку Изменить -> Нажмите Установленные JRE-> добавьте галочку в поле -> нажмите Правка -> Нажмите Каталог-> Выбрать jdk

    • Укажите, какую версию jdk вы установили

    Щелкните правой кнопкой мыши проект -> Фасеты проекта -> отметьте java и выберите версию java -> Применить -> ОК

    • Обновить проект

    Щелкните правой кнопкой мыши «проект» -> Перейти к Maven-> Обновить

    02. Удалить файл .m2

    Если вы не можете решить свою проблему, используя две вышеупомянутые темы, получите это действие Закройте свой проект. Удалите всю папку .m2

    Как оштрафовать файл .m2 (windows)

    Перейдите на Локальный диск (C) -> Пользователи -> Выберите имя вашего ПК -> .m2 файл.

    JustCode
    источник
    0

    Возможно, вы можете добавить эту зависимость в свой pom.xml. Пользуюсь этим методом и решаю проблему!

    <dependency> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.3.2</version> 
    </dependency>
    FreeWong
    источник
    0

    для новых пользователей Mac OS: найдите папку .m2 и удалите ее в каталоге /Users/.m2 .

    вы не увидите папку .m2 в поисковике (проводнике), для этого пользователя эта команда показывает скрытые файлы Mac

    $ defaults написать com.apple.finder AppleShowAllFiles ИСТИНА

    после этого нажмите alt и нажмите Finder-> перезапустить, вы увидите /Users/.m2

    чтобы снова скрыть файлы, просто используйте это значение по умолчанию, напишите com.apple.finder AppleShowAllFiles false

    свадеши
    источник
    0

    Я переименовал каталог .m2, это пока не помогло, поэтому я установил новейший sdk / jdk и перезапустил eclipse. Это сработало.

    Кажется, нужен был SDK, а я установил только JRE.

    Что странно, потому что eclipse работал на той же машине для другого старого проекта.

    Я импортировал второй проект maven, и установка Run / maven завершилась только после перезапуска eclipse. Так что, возможно, потребовался перезапуск eclipse.

    Импортировал еще один проект, и мне пришлось сделать это maven installдважды, прежде чем он сработал, хотя я перезапустил eclipse.

    Сумматор
    источник
    0

    Это действительно невероятно - быть обязанным стереть все содержимое .m2 / репозитория. Я предлагаю ввести эту команду (в Windows):

    mvn clean

    mvn -X пакет> my_log_file.log

    Последняя команда включает параметр отладки и перенаправляет вывод в файл. Откройте файл и выполните поиск по ключевым словам ERROR или WARNING. Вы можете найти такое выражение:

    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

    В этом случае следует понимать, что вам нужно просто удалить каталог C: \ Users \ vifie.m2 \ repository \ net \ java \ jvnet-parent \ 3

    Перезапустить компиляцию, упаковку и так далее:

    mvn пакет

    ПРЕДУПРЕЖДЕНИЕ исчезнет только потому, что вы удалите файл POM, поврежденный в хорошем месте, и повторно загрузите его. Обычно новый файл POM лучше.

    Часто режим отладки дает вам сообщения с более подробной информацией.

    Почему я перенаправляю журнал в файл: просто потому, что в консоли Windows недостаточно буфера для хранения всех строк, и часто вы не можете видеть все строки.

    Вифер Локла
    источник
    0

    Мы перепробовали все перечисленное, но все равно не удалось. Ошибка также упоминается

    (default-war) в проекте utilsJava: Ошибка сборки WAR: требуется атрибут webxml

    Решение, которое окончательно исправило это, добавило это в POM:

    <failOnMissingWebXml>false</failOnMissingWebXml>

    Как упоминалось здесь Ошибка сборки WAR - требуется атрибут webxml

    Наш POM теперь содержит это:

    <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
    источник
    0

    Удалите приведенный ниже код из pom.xml или исправьте версию Java, чтобы она работала.

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
    Шанкара
    источник
    -2

    У меня была такая же проблема, и помимо конфигураций вышеупомянутых сообщений,

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

    в элементе plugins в pom.xml. Я думаю, что проблема заключалась в отсутствии выполнения -> цель "endpoints_get_discovery_doc" в некоторых случаях, подобных моему, так что это сработало для меня.

    MRTC
    источник
    Хотя этот фрагмент кода может решить вопрос, включение объяснения действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причины вашего предложения кода.
    yennsarah
    @ Эми, спасибо за подсказку, я пытался объяснить и надеюсь, что мне это удалось.
    MRTC