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


130

Я використовую 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зробити ВІЙНА моєї заявки.



переконайтеся, що ви використовуєте java 8
Archmede

2
@EugeneHoza codehaus JIRA закрита, і ваше посилання мертве. Чи бачите ви зараз, чому посилання ніколи не повинні бути єдиною інформацією?
naXa

Я отримав цю помилку під час переходу з весни 2.2.7 до 2.3.1
Раві Парех

Відповіді:


135

Видалення повного .m2/repositoryлокального сховища вирішило мою проблему.

Або ж вам потрібно знати, які плагіни ви використовуєте саме з їх залежностями, оскільки один із плагінів зазнав проблеми під час завантаження.


2
Я видалив каталог репозиторію / org, і після цього все нормально спрацювало
dannrob

Я перейменував своє ".M2 / Repository", це не помилка кидання якнайменше .. подивимось.
InfantPro'Aravind '23

13
слід видалити , .m2/repositoryщоб не видалити settings.xmlв .m2директорії
Mike D

3
rm -rf rm -rf ~/.m2/repository/org/apache/працює для мене.
Венер

Подібно до того, що @wener запропонував, я видалив папку ~ / .m2 \ repository \ org \ apache \ maven і працював на мені.
Edu Costa

122

Видалення локального сховища .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 Імператор

Хтось знає, чому така проблема трапляється? У мене ж проблема і видалення каталогу вирішує її.
emmmphd

@MCEmperor Дякую! Знайшов, що видалив його, і він працює зараз.
Прямий ДАЙВ

48

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

mvn clean install -X допомагає виявити першопричину.

Деякі з важливих фаз життєвого циклу побудови Мавена:

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

Тег 1.6 under посилається на версію 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.


29

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

У вашому випадку я думаю, що maven-компілятору-плагіну: jar: 2.3.2 потрібен jdk1.6

Для цього: запустіть конфігурацію> YOUR_MAVEN_BUILD> JRE> альтернативний JREвведіть тут опис зображення

Сподіваюся, це допомагає.


1
це найкраще рішення, також працював для мене не потрібно видаляти файли, я думаю, що це насправді те, що спричиняло проблему
Данкен

ви повинні повідомити світові про це. тому що навіть коли я встановлюю jre в jdk у windows-> налаштуваннях, це не працює. але ваша відповідь працює.
божественне

20

Іноді це викликано через проектні вказівки на JRE, а не на JDK. Отже, спробуйте це,

1. Право Клацніть проект -> Шлях збірки -> Налаштування контуру збірки -> Додати бібліотеку -> Системна бібліотека JRE -> Середовища -> Встановлені JRE -> Вкажіть на папку java у c: drive (Windows ) та виберіть папку JDK та добре.

2. Видаліть вже наявний JRE з шляху складання.


Працювали чудово !! Оновлення: У програмі Eclipse Java Oxygen на сторінці "Встановлені JRE" ви повинні натиснути "Додати ...", перш ніж вказувати на папку
gotube

Так, це працювало і для мене. Я думаю, що це швидке рішення видалити існуючий JRE та додати знову.
Нікхіл Лотке

6

Зазвичай визначити maven-компілятор-плагін достатньо. додайте наступне до визначення плагіна компілятора.

<plugin>
    <inherited>true</inherited>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>              
</plugin>

Так, я додав "<inherited> true </inherited>" у свій pom.xml, і коли я його зберігаю, я отримую таке виняток: Під час "Оновлення залежностей Maven" сталася внутрішня помилка. org / apache / maven / спільний / фільтруючий / MavenFilteringException
Rushi Shah

8
Нарешті я отримав рішення, виконавши таку команду: mvn clean install -X. Це дало мені першопричину. Насправді мій JAVA_HOME вказував на JRE_HOME і компілятор у maven-компілятор-плагін, який він шукав, поставляється лише з 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. Виявляється, у мене було встановлено Java 9, а також Java 8, встановлену на macOS. Видалений Java 9, тепер Maven працює добре. Дивіться мою відповідь .
Василь Бурк

5

У мене була ця проблема один раз, і ось як я її вирішив:

  • Крок-1 Очистіть своє
    .м2 / сховище

  • Крок 2 виконайте команду maven (наприклад mvn clean verify) з терміналу в поточному місці проекту (де існує файл pom.xml вашого проекту) замість запуску maven від eclipse.

  • Це погіршило справу
    karlihnos

    2

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

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

    Звичайно, у вас буде новий сховище з усіма завантаженнями джерела Maven, крім попереднього .m2-розташування.

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


    2

    перевірити endorsed.dirтег властивості у вашому pom.xml.
    У мене також була ця проблема, і я виправився, змінивши властивість.

    Приклад:

    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>  

    1
    • Завантажте банку плагінів Maven компілятора з центральної репозиторії
    • Якщо все-таки не вдалося перевірити вашу jdk-версію, це тому, що ваша програма побудована на версії jdk diff

    1

    Для мене перезапуск Eclipse позбувся цієї помилки!


    1

    Я думаю, у вас є два способи вирішити цю проблему

    01. Встановіть властивості

    • Встановити Java Build Path як jdk

    Клацніть правою кнопкою миші проект -> Шлях збірки Java -> Виберіть вкладку Бібліотеки -> Виберіть системну бібліотеку JRE -> Клацніть кнопку Редагувати -> Клацніть встановлений JREs-> додайте галочку до поля -> натисніть Редагувати -> Клацніть Каталог-> Виберіть jdk

    • Вкажіть, яку саме версію jdk ви встановили

    Клацніть правою кнопкою миші проект -> Грані проекту -> позначте Java і виберіть версію Java-> Застосувати -> Ок

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

    Клацніть правою кнопкою миші на "проект" -> Перейти до Maven-> Оновити

    02.Виберіть файл .m2

    Якщо ви не можете вирішити свою проблему за допомогою вищевказаних тем, виконайте цю дію. Закрийте проект. Видаліть повну папку .m2

    Як оштрафувати файл .m2 (windows)

    Перейдіть до локального диска (C) -> Користувачі -> Виберіть своє ім'я ПК ->. M2 m2


    1

    Java 9 несумісна

    Я отримав цю помилку при спробі дзвонити mvn installна проект.

    Я встановив Java 9 на macOS, а також оновлення Java 8 144. Мій проект Maven, мабуть, викликав Java 9 і не працював. Видалено Java 9 з мого Mac, залишивши просто Java 8 на своєму місці. Зараз Мейвен із задоволенням будує мій проект до успішного завершення.

    Використання Apache Maven 3.5.0 на macOS Sierra.


    0

    Можливо, ви можете додати цю залежність до свого pom.xml. Я використовую цей метод і вирішую проблему!

    <dependency> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.3.2</version> 
    </dependency>

    0

    для нових користувачів Mac OS, знайдіть папку .m2 та видаліть її у каталозі /Users/.m2 .

    Ви не зможете побачити папку .m2 у Finder (File Explorer), для цього користувача ця команда показує приховані файли Mac

    $ за замовчуванням пише com.apple.finder AppleShowAllFiles ІСТИНА

    після цього натисніть клавішу alt і натисніть на пошук-> перезапуск, ви можете побачити /Users/.m2

    щоб знову приховати файли, просто використовуйте цей $ за замовчуванням, напишіть com.apple.finder AppleShowAllFiles false


    0

    Я перейменував каталог .m2, це ще не допомогло, тому я встановив найновіший sdk / jdk і перезапустив затемнення. Це спрацювало.

    Здається, SDK був потрібний, і я лише встановив JRE.

    Що дивно, адже затемнення працювало на одній машині для іншого старого проекту.

    Я імпортував другий проект Maven, а установка Run / maven завершилася лише після перезапуску затемнення. Тож, можливо, був необхідний лише перезапуск затемнення.

    Імпорт ще одного проекту, і його довелося зробити maven installдва рази, перш ніж він працював, хоча я знову запустив затемнення.


    0

    Видалити весь вміст .m2 / сховища дійсно неймовірно. Я пропоную набрати цю команду (у Windows):

    mvn чистий

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

    Остання команда включить параметр «Налагодження» та перенаправлення виводу у файл. Відкрийте файл і знайдіть ПОМИЛКУ або ПОПЕРЕДЖЕННЯ ключових слів. Ви можете знайти такий вираз:

    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

    Ми спробували все, що перераховано до цього часу, і все одно не вдалося. Про помилку також згадується

    (за замовчуванням) для проекту 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>  

    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>

    в елементі плагінів у pom.xml. Я думаю, що проблема полягала у відсутності виконання -> мета "endpoints_get_discovery_doc" у деяких випадках, як у мене, тому це працювало для мене.


    Хоча цей фрагмент коду може вирішити питання, зокрема пояснення дійсно допомагає покращити якість вашої публікації. Пам'ятайте, що ви відповідаєте на запитання читачів у майбутньому, і ці люди можуть не знати причини вашої пропозиції щодо коду.
    yennsarah

    @Але спасибі за підказку, я намагався пояснити, і я сподіваюся, що мені вдалося.
    MRTC
    Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
    Licensed under cc by-sa 3.0 with attribution required.