ไม่สามารถดำเนินการเป้าหมาย org.apache.maven.plugins: maven-compiler-plugin: 2.3.2: คอมไพล์ (คอมไพล์เริ่มต้น)


130

ฉันใช้Maven 3.0.5และSpring Tool Source 3.2พร้อมกับติดตั้งปลั๊กอิน Maven เมื่อฉันพยายามทำ 'Run As ---> Maven install' ฉันได้รับข้อผิดพลาดดังต่อไปนี้:

[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 ของใบสมัคร



ตรวจสอบให้แน่ใจว่าคุณใช้ java 8
Archmede

2
@EugeneHoza codehaus JIRA ปิดแล้วลิงก์ของคุณก็ตาย คุณเห็นตอนนี้ทำไมลิงค์ไม่ควรเป็นข้อมูลชิ้นเดียว?
naXa

ฉันได้รับข้อผิดพลาดนี้ขณะย้ายจาก Spring 2.2.7 เป็น 2.3.1
Ravi Parekh

คำตอบ:


135

การลบที่.m2/repositoryเก็บข้อมูลภายในเครื่องแบบเต็มสามารถแก้ไขปัญหาของฉันได้

หรืออื่น ๆ ที่คุณต้องรู้ว่าปลั๊กอินใดที่คุณใช้ตรงกับการพึ่งพาของพวกเขาเป็นหนึ่งในปลั๊กอินประสบปัญหาในขณะที่ดาวน์โหลด


2
ฉันลบโดยไดเรกทอรีพื้นที่เก็บข้อมูล / org และมันก็ทำงานได้ดีหลังจากนั้น
dannrob

ฉันเปลี่ยนชื่อ ".M2 / Repository" ของฉันมันไม่ได้ทิ้งข้อผิดพลาดอย่างน้อย .. มาดูกัน
InfantPro'Aravind '23

13
ควรจะลบ.m2/repositoryเพื่อที่คุณจะไม่ลบsettings.xmlใน.m2dir
Mike D

3
rm -rf rm -rf ~/.m2/repository/org/apache/ทำงานได้สำหรับฉัน
59

คล้ายกับสิ่งที่ @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 Emperor

ใครรู้ว่าทำไมปัญหานี้เกิดขึ้น ฉันมีปัญหาเดียวกันและลบไดเรกทอรีแก้มัน
emmmphd

@ MCEm Emperor ขอบคุณ! พบว่าลบแล้วและใช้งานได้ในขณะนี้
DIRTY DAVE

48

ฉันกำลังเพิ่มคะแนนให้กับโซลูชันโดย @Rushi Shah

mvn clean install -X ช่วยในการระบุสาเหตุที่แท้จริง

บางช่วงของการสร้างวงจรชีวิตที่สำคัญของ Maven คือ:

clean- โครงการความสะอาดของอุปกรณ์ทั้งหมดที่มาจากการรวบรวมก่อนหน้า compile- โครงการเรียบเรียง / เป้าหมายไดเรกทอรีรากโครงการ install- แพคเกจที่เก็บจะถูกคัดลอกลงพื้นที่เก็บข้อมูล Maven ท้องถิ่น (สามารถในไดเรกทอรีบ้านของผู้ใช้ภายใต้ /.m2) test- การทดสอบหน่วยเป็น run package- แหล่งข้อมูลที่รวบรวมจะถูกบรรจุลงในไฟล์เก็บถาวร (JAR โดยค่าเริ่มต้น)

1.6 ภายใต้แท็กหมายถึงรุ่น JDK เราจำเป็นต้องตรวจสอบให้แน่ใจว่ารุ่น jdk ที่เหมาะสมในสภาพแวดล้อม dev ของเราหรือเปลี่ยนค่าเป็น 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 ใน Run Configuration ...

ในกรณีของคุณฉันคิดว่า maven-compiler-plugin: jar: 2.3.2 ต้องการ jdk1.6

เมื่อต้องการทำสิ่งนี้: เรียกใช้การกำหนดค่า> YOUR_MAVEN_BUILD> JRE> JRE สำรองป้อนคำอธิบายรูปภาพที่นี่

หวังว่านี่จะช่วยได้


1
นี่เป็นทางออกที่ดีที่สุดและใช้งานได้สำหรับฉันไม่จำเป็นต้องลบไฟล์ฉันคิดว่านี่เป็นสิ่งที่ทำให้เกิดปัญหา
Dunken

คุณต้องให้โลกรู้เกี่ยวกับสิ่งนี้ เพราะแม้เมื่อฉันตั้ง jre เป็น jdk ในการตั้งค่า windows-> มันไม่ทำงาน แต่คำตอบของคุณใช้ได้
ศักดิ์สิทธิ์

20

บางครั้งมันเกิดจากโครงการชี้ไปที่ JRE แทนที่จะเป็น JDK ดังนั้นให้ลองทำเช่นนี้

1. คลิกขวาที่โครงการ -> เส้นทางการสร้าง -> กำหนดค่าเส้นทางการสร้าง -> เพิ่มห้องสมุด -> ห้องสมุดระบบ JRE -> สภาพแวดล้อม -> ติดตั้ง JREs -> ชี้ไปที่โฟลเดอร์ Java ใน c: ไดรฟ์ (Windows ) และเลือกโฟลเดอร์ JDK และตกลง

2. ลบ JRE ที่มีอยู่แล้วออกจาก build path


ทำงานอย่างสมบูรณ์แบบ !! อัปเดต: ใน Eclipse Java Oxygen บนหน้า "JREs ที่ติดตั้ง" คุณต้องคลิก "เพิ่ม ... " ก่อนที่จะชี้ไปที่โฟลเดอร์
gotube

ใช่มันใช้ได้กับฉันเช่นกัน ฉันคิดว่ามันเป็นทางออกที่รวดเร็วในการลบ JRE ที่มีอยู่และเพิ่มอีกครั้ง
Nikhil Lotke

6

โดยปกติแล้วการกำหนด maven-compiler-plugin ก็เพียงพอแล้ว เพิ่มสิ่งต่อไปนี้ในนิยามปลั๊กอินคอมไพเลอร์ของคุณ

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

ใช่ฉันเพิ่ม "<inherited> จริง </inherited>" ใน pom.xml ของฉันและเมื่อฉันบันทึกฉันได้รับข้อยกเว้นต่อไปนี้: มีข้อผิดพลาดภายในเกิดขึ้นระหว่าง: "กำลังอัปเดต Maven Dependencies" org / apache / maven / shared / filter / 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 เวอร์ชัน ปรากฎว่าฉันมี Java 9 เช่นเดียวกับ Java 8 ติดตั้งบน macOS ลบ Java 9 แล้วตอนนี้ Maven ทำงานได้ดี ดูคำตอบของฉัน
Basil Bourque

5

ฉันมีปัญหานี้หนึ่งครั้งและนี่คือวิธีที่ฉันแก้ไข:

  • ขั้นตอนที่ 1 ทำความสะอาดของคุณ
    .m2 / พื้นที่เก็บข้อมูล

  • ขั้นตอนที่ 2 รันคำสั่ง maven (ตัวอย่างmvn clean verify) จากเทอร์มินัลที่ตำแหน่งโปรเจ็กต์ปัจจุบัน (ที่มีไฟล์ pom.xml ของโปรเจ็กต์ของคุณอยู่) แทนการรัน maven จาก eclipse

  • สิ่งนี้ทำให้สิ่งเลวร้ายยิ่งขึ้น
    karlihnos

    2

    ที่จริงแล้วถ้าคุณไม่ต้องการลบ. m2 / repository / ... และคุณมีสำเนา Maven ที่ดาวน์โหลดมาจาก Apache คุณสามารถให้ Eclipse / STS ใช้ Maven ภายนอกนั้นและคุณสามารถแก้ไข {maven} \ conf \ settings.xml เพื่อชี้ localRepository ของคุณไปยังตำแหน่งว่างใหม่

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

    แน่นอนคุณจะมีที่เก็บใหม่พร้อมแหล่งดาวน์โหลด maven ทั้งหมดนอกเหนือจากตำแหน่ง. m2 ก่อนหน้า

    ป้อนคำอธิบายรูปภาพที่นี่


    2

    ตรวจสอบทรัพย์สินที่แท็กของคุณendorsed.dir ฉันมีปัญหานี้และฉันแก้ไขโดยการแก้ไขคุณสมบัติ pom.xml

    ตัวอย่าง:

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

    1
    • ดาวน์โหลด maven compiler plugin jar จากที่เก็บส่วนกลางของคุณและลอง
    • หากยังไม่สามารถตรวจสอบเวอร์ชัน jdk ของคุณอาจเป็นเพราะแอปพลิเคชันของคุณถูกสร้างขึ้นในรุ่น diff jdk


    1

    ฉันคิดว่าคุณมีสองวิธีในการแก้ปัญหานี้

    01. ตั้งค่าคุณสมบัติ

    • ตั้งค่า Java Build Path เป็น jdk

    คลิกขวาที่โปรเจ็กต์ -> Java Build Path -> เลือกแท็บไลบรารี -> เลือก JRE System Library -> คลิกปุ่มแก้ไข -> คลิกติดตั้ง JREs-> เพิ่มติ๊กในกล่อง -> คลิกแก้ไข -> คลิกไดเรกทอรี -> เลือก jdk

    • ระบุเวอร์ชัน jdk ที่คุณติดตั้ง

    คลิกขวาที่โครงการ -> Project Facets -> tick java และเลือก java version-> Apply -> Ok

    • อัปเดตโครงการ

    คลิกขวาที่ "project" -> ไปที่ Maven-> Update

    02.Delete .m2 ไฟล์

    หากคุณไม่สามารถแก้ปัญหาโดยใช้สองหัวข้อข้างต้นรับการกระทำนี้ปิดโครงการของคุณ ลบโฟลเดอร์. m2 แบบเต็ม

    วิธีปรับไฟล์. m2 (windows)

    ไปที่ Local Disk (C) -> ผู้ใช้ -> เลือกชื่อพีซีของคุณ ->. m2 file


    1

    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


    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 TRUE

    หลังจากกด alt และคลิกที่ finder-> เปิดใหม่คุณจะเห็น/Users/.m2

    หากต้องการซ่อนไฟล์อีกครั้งเพียงใช้$ defaultsนี้ เขียน com.apple.finder AppleShowAllFiles false


    0

    ฉันเปลี่ยนชื่อไดเรกทอรี. m2 นี่ยังไม่ช่วยฉันเลยติดตั้ง sdk / jdk ใหม่ล่าสุดและรีสตาร์ทคราส สิ่งนี้ใช้ได้ผล

    ดูเหมือนว่าจำเป็นต้องใช้ SDK และฉันเพิ่งติดตั้ง JRE

    ซึ่งแปลกเพราะ eclipse ทำงานบนเครื่องเดียวกันกับโปรเจ็กต์รุ่นเก่า

    ฉันนำเข้าโครงการ maven ที่สองและการติดตั้ง Run / maven ก็เสร็จสมบูรณ์หลังจากรีสตาร์ทคราส ดังนั้นอาจจำเป็นต้องรีสตาร์ทคราส

    การนำเข้ายังโครงการอื่นและต้องทำmaven installสองครั้งก่อนที่มันจะทำงานแม้ว่าฉันจะรีสตาร์ทคราส


    0

    มันยอดเยี่ยมมากที่จะต้องลบเนื้อหา. m2 / repository ทั้งหมด ฉันแนะนำให้พิมพ์คำสั่งนี้ (บน 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

    @Amy ขอบคุณสำหรับเคล็ดลับฉันพยายามอธิบายและฉันหวังว่าฉันประสบความสำเร็จ
    MRTC
    โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
    Licensed under cc by-sa 3.0 with attribution required.