Không thể thực hiện mục tiêu org.apache.maven.plugins: maven-Trình biên dịch-plugin: 2.3.2: biên dịch (mặc định biên dịch)


130

Tôi đang sử dụng Maven 3.0.5Spring Tool Source 3.2 với plugin Maven được cài đặt. Khi tôi cố gắng thực hiện 'Chạy dưới dạng ---> Cài đặt Maven', tôi gặp lỗi sau:

[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

Vui lòng tìm bên dưới tệp pom.xml của tôi:

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

Trong quá trình cài đặt, mục tiêu của tôi là war:wartạo WAR cho ứng dụng của mình.



đảm bảo bạn đang sử dụng java 8
Archmede

2
@EugeneHoza codehaus JIRA đã bị đóng và liên kết của bạn đã chết. Bạn có thấy tại sao các liên kết không bao giờ nên là thông tin duy nhất không?
naXa

Tôi đã gặp lỗi này khi chuyển từ Mùa xuân 2.2.7 sang 2.3.1
Ravi Parekh

Câu trả lời:


135

Xóa toàn .m2/repositorybộ kho lưu trữ cục bộ đã giải quyết vấn đề của tôi.

Hoặc nếu không, bạn cần phải biết những plugin nào bạn đang sử dụng chính xác với các phụ thuộc của chúng vì một trong những plugin gặp sự cố trong khi tải xuống.


2
Tôi đã xóa thư mục repository / org và tất cả đều hoạt động tốt sau đó
dannrob

Tôi đã đổi tên ".M2 / Kho lưu trữ" của mình, đó không phải là lỗi ít nhất .. hãy xem.
InfantPro'Aravind '

13
nên xóa .m2/repositoryđể bạn không xóa settings.xmltrong .m2thư mục
Mike D

3
rm -rf rm -rf ~/.m2/repository/org/apache/làm việc cho tôi
wener

Tương tự như những gì @wener đề xuất tôi đã xóa thư mục ~ / .m2 \ repository \ org \ apache \ maven và làm việc cho tôi.
Edu Costa

122

Xóa toàn bộ kho lưu trữ cục bộ .m2 cũng giải quyết vấn đề của tôi.

Nếu bạn không biết nó ở đâu, thì các địa điểm là:

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
Lưu ý rằng, trong Windows, việc gõ %USERPROFILE%sẽ dẫn bạn đến .m2thư mục hồ sơ của bạn nơi thư mục được đặt.
MC Hoàng đế

Bất cứ ai cũng biết tại sao vấn đề này xảy ra? Tôi có cùng một vấn đề và xóa thư mục giải quyết nó.
emmmphd

@MCEmaoh Cảm ơn! Tìm thấy nó đã xóa nó, và nó hoạt động bây giờ.
TRỰC TIẾP DAVE

48

Tôi đang thêm nhiều điểm vào giải pháp của @Rushi Shah

mvn clean install -X giúp xác định nguyên nhân gốc rễ.

Một số giai đoạn quan trọng của vòng đời xây dựng Maven là:

clean- Dự án là sạch của tất cả các hiện vật đến từ biên soạn trước compile- dự án được biên dịch vào / target thư mục gốc của dự án install- đóng gói lưu trữ được sao chép vào kho maven địa phương (có thể trong thư mục chính của người dùng của bạn dưới /.m2) test- kiểm tra đơn vị là chạy package- các nguồn được biên dịch được đóng gói vào kho lưu trữ (JAR theo mặc định)

Thẻ 1.6 dưới đây đề cập đến phiên bản JDK. Chúng ta cần đảm bảo rằng phiên bản jdk thích hợp trong môi trường dev của chúng tôi hoặc thay đổi giá trị thành 1.7 hoặc 1.5 hoặc bất cứ điều gì nếu ứng dụng có thể được hỗ trợ trong phiên bản 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>

Chúng tôi có thể tìm thấy các chi tiết đầy đủ về vòng đời xây dựng Maven Maven trong trang web Maven.


29

Tôi cũng gặp vấn đề tương tự, hãy kiểm tra jre đã cài đặt được sử dụng bởi Maven trong Cấu hình chạy của bạn ...

Trong trường hợp của bạn, tôi nghĩ rằng maven-Trình biên dịch-plugin: jar: 2.3.2 cần một jdk1.6

Để thực hiện việc này: Chạy Cấu hình> Your_MAVEN_BUILD> JRE> JRE thay thếnhập mô tả hình ảnh ở đây

Hi vọng điêu nay co ich.


1
Đây là giải pháp tốt nhất, tôi cũng không cần phải xóa các tập tin. Tôi nghĩ đây thực sự là nguyên nhân gây ra sự cố
Dunken

bạn phải cho cả thế giới biết về điều này bởi vì ngay cả khi tôi đặt jre thành jdk trong windows-> Preferences, nó vẫn không hoạt động. nhưng câu trả lời của bạn hoạt động.
thần thánh

20

Đôi khi nó được gây ra do dự án trỏ đến JRE chứ không phải JDK. Vì vậy, hãy thử điều này,

1.Right Nhấp vào dự án -> Đường dẫn xây dựng -> Cấu hình đường dẫn xây dựng -> Thêm thư viện -> Thư viện hệ thống JRE -> Môi trường -> JREs đã cài đặt -> Trỏ tới thư mục java trong ổ đĩa c: (Windows ) và chọn thư mục JDK và ok.

2. Loại bỏ JRE đã có từ đường dẫn xây dựng.


Làm việc hoàn hảo !! Cập nhật: Trong Eclipse Java Oxygen, trên trang "JREs đã cài đặt", bạn phải nhấp vào "Thêm ..." trước khi chỉ vào thư mục
gotube

Vâng, điều này làm việc cho tôi là tốt. Tôi nghĩ rằng đó là một giải pháp nhanh chóng để loại bỏ JRE hiện có và thêm lại.
Nikhil Lotke

6

Thông thường, xác định maven-Trình biên dịch-plugin là đủ. thêm phần sau vào định nghĩa plugin trình biên dịch của bạn.

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

Có, tôi đã thêm "<kế thừa> đúng </ kế thừa>" trong tệp pom.xml của mình và khi tôi lưu nó, tôi nhận được ngoại lệ sau: Đã xảy ra lỗi nội bộ trong: "Cập nhật phụ thuộc Maven". org / apache / maven / shared / lọc / MavenFilteringException
Rushi Shah

8
Cuối cùng tôi đã nhận được giải pháp bằng cách chạy lệnh sau: mvn clean install -X. Nó đã cho tôi nguyên nhân gốc rễ. Trên thực tế, JAVA_HOME của tôi đã trỏ đến JRE_HOME và trình biên dịch trong maven-Trình biên dịch-plugin, nó đang tìm kiếm, các tàu chỉ có JDK. Vì vậy, tôi đã cài đặt JDK và cập nhật JAVA_HOME của mình.
Rushi Shah

không giúp đỡ: [CẢNH BÁO] Không thể tự động phát hiện đường dẫn 'javac', sử dụng 'javac' từ môi trường.
MemLeak

5

Đôi khi sự cố này xảy ra do java.version mà bạn đã đề cập trong POM.xml không phải là lỗi được cài đặt trong máy của bạn.

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

Đảm bảo bạn đề cập chính xác cùng một phiên bản trong tệp pom.xml của bạn như phiên bản jdk và jre có trong máy của bạn.


Cảm ơn bạn Câu trả lời này đã cho tôi ý tưởng rằng trong trường hợp của tôi, vấn đề có liên quan đến phiên bản Java. Hóa ra tôi đã cài đặt Java 9 cũng như Java 8 trên macOS. Đã xóa Java 9, bây giờ Maven chạy tốt. Xem câu trả lời của tôi .
Basil Bourque

5

Tôi đã có vấn đề này một lần và đây là cách tôi giải quyết nó:

  • Bước 1 Làm sạch của bạn
    .m2 / kho

  • Bước 2 thực hiện lệnh maven (ví dụ mvn clean verify) từ thiết bị đầu cuối tại vị trí dự án hiện tại (nơi tồn tại tệp pom.xml của dự án của bạn) thay vì chạy maven từ nhật thực.

  • Điều này làm cho điều tồi tệ hơn
    karlihnos

    2

    Thực tế, nếu bạn không muốn xóa .m2 / repository / ... cục bộ của mình và bạn có một bản sao Maven được tải xuống từ Apache, bạn có thể sử dụng Eclipse / STS bên ngoài và bạn có thể chỉnh sửa {maven} \ conf \ settings.xml để trỏ localRep repository của bạn đến một vị trí trống mới.

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

    Tất nhiên, bạn sẽ có một kho lưu trữ mới với tất cả các tải xuống nguồn maven ngoài vị trí .m2 trước đó của bạn.

    nhập mô tả hình ảnh ở đây


    2

    kiểm tra endorsed.dirthẻ thuộc tính trong của bạn pom.xml.
    Tôi cũng có vấn đề này và tôi đã sửa chữa bằng cách sửa đổi tài sản.

    Thí dụ:

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

    1
    • Tải xuống jar trình biên dịch maven từ kho lưu trữ trung tâm của bạn thử
    • Nếu vẫn không kiểm tra phiên bản jdk của bạn, đó là do ứng dụng của bạn được xây dựng trên phiên bản diff jdk

    1

    Đối với tôi, khởi động lại Eclipse đã thoát khỏi lỗi này!


    1

    Tôi nghĩ bạn có hai cách để giải quyết vấn đề này

    01. Đặt thuộc tính

    • Đặt Đường dẫn xây dựng Java là jdk

    Dự án nhấp chuột phải -> Đường dẫn xây dựng Java -> Chọn tab Thư viện -> Chọn Thư viện hệ thống JRE -> Nhấp vào nút Chỉnh sửa -> Nhấp vào Đã cài đặt JREs-> thêm dấu vào hộp -> nhấp vào Chỉnh sửa -> Nhấp vào Thư mục-> Chọn jdk

    • Specifi loại phiên bản jdk bạn đã cài đặt

    Nhấp chuột phải vào dự án -> Khía cạnh dự án -> đánh dấu java và chọn phiên bản java-> Áp dụng -> Ok

    • Cập nhật dự án

    Nhấp chuột phải vào "dự án" -> Chuyển đến Maven-> Cập nhật

    02.Xóa tập tin .m2

    Nếu bạn không thể giải quyết vấn đề của mình bằng hai chủ đề trên, hãy thực hiện hành động này Đóng dự án của bạn. Xóa thư mục .m2 đầy đủ của bạn

    Cách phạt tập tin .m2 (windows)

    Chuyển đến Đĩa cục bộ (C) -> Người dùng -> Chọn tên PC của bạn ->. M2 tệp


    1

    Java 9 không tương thích

    Tôi đã gặp lỗi này khi cố gắng gọi mvn installmột dự án.

    Tôi đã cài đặt Java 9 trên macOS cũng như Java 8 Update 144. Dự án Maven của tôi rõ ràng đang gọi Java 9 và không thành công. Đã xóa Java 9 khỏi máy Mac của tôi, chỉ còn lại Java 8. Maven hiện đang hạnh phúc xây dựng dự án của tôi để hoàn thành thành công.

    Sử dụng Apache Maven 3.5.0 trên macOS Sierra.


    0

    Có lẽ bạn có thể thêm phụ thuộc này vào tệp pom.xml của mình. Tôi sử dụng phương pháp này và giải quyết vấn đề

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

    0

    đối với người dùng mới trên Mac os, hãy tìm hiểu thư mục .m2 và xóa nó, trên /Users/.m2 của bạn thư mục .

    bạn sẽ không thấy thư mục .m2 trong công cụ tìm (File Explorer), đối với người dùng này lệnh này để hiển thị các tệp ẩn của Mac

    $ mặc định viết com.apple.finder AppleShow ALLFiles TRUE

    sau khi nhấn alt và nhấp vào finder-> khởi chạy lại, bạn có thể thấy /Users/.m2

    để ẩn các tệp một lần nữa, chỉ cần sử dụng $ mặc định này viết com.apple.finder AppleShowAllFiles sai


    0

    Tôi đã đổi tên thư mục .m2, điều này chưa giúp được gì, vì vậy tôi đã cài đặt sdk / jdk mới nhất và khởi động lại nhật thực. Điều này đã làm việc.

    Có vẻ như cần có SDK và tôi chỉ cài đặt JRE.

    Điều này thật kỳ lạ, vì nhật thực làm việc trên cùng một máy cho một dự án cũ khác.

    Tôi đã nhập một dự án maven thứ hai và cài đặt Run / maven chỉ hoàn thành sau khi khởi động lại nhật thực. Vì vậy, có lẽ chỉ cần khởi động lại nhật thực là cần thiết.

    Nhập một dự án khác và phải thực hiện maven installhai lần trước khi nó hoạt động mặc dù tôi đã khởi động lại nhật thực.


    0

    Thật đáng kinh ngạc khi bắt buộc phải xóa toàn bộ nội dung .m2 / kho lưu trữ. Tôi đề nghị gõ lệnh này (Trên Windows):

    mvn sạch

    gói mvn -X> my_log_file.log

    Lệnh cuối cùng cho phép tùy chọn Debug et chuyển hướng đầu ra sang một tệp. Mở tệp và tìm kiếm các từ khóa LRI hoặc CẢNH BÁO. Bạn có thể tìm thấy loại biểu thức này:

    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

    Trong trường hợp này, để hiểu bạn chỉ cần xóa thư mục C: \ Users \ vifie.m2 \ repository \ net \ java \ jvnet-Parent \ 3

    Khởi chạy lại biên dịch, đóng gói và như vậy:

    gói mvn

    CẢNH BÁO biến mất chỉ vì bạn xóa tệp POM bị hỏng tại vị trí tốt và tải lại. Thông thường tệp POM mới là tốt hơn.

    Chế độ gỡ lỗi thường cung cấp cho bạn tin nhắn với các chi tiết toàn diện hơn.

    Tại sao tôi chuyển hướng đăng nhập vào một tệp: Đơn giản vì trên bảng điều khiển Windows không có đủ bộ đệm để lưu trữ tất cả các dòng và thường bạn không thể thấy tất cả các dòng.


    0

    Chúng tôi đã thử mọi thứ được liệt kê cho đến nay và nó vẫn thất bại. Lỗi cũng được đề cập

    (default-war) trên dự án utilsJava: Lỗi khi lắp ráp WAR: thuộc tính webxml là bắt buộc

    Giải pháp cuối cùng đã sửa nó là thêm nó vào POM:

    <failOnMissingWebXml>false</failOnMissingWebXml>

    Như đã đề cập ở đây Lỗi lắp ráp WAR - thuộc tính webxml là bắt buộc

    POM của chúng tôi hiện có chứa điều này:

    <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

    Xóa mã dưới đây khỏi pom.xml hoặc sửa phiên bản java của bạn để làm cho nó hoạt động.

      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.0</version>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>

    -2

    tôi đã có cùng một vấn đề và bên cạnh các cấu hình của bài viết ở trên

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

    trong phần tử bổ trợ trong pom.xml. Tôi nghĩ rằng vấn đề là không có sự thực thi -> mục tiêu "endpoint_get_discovery_doc" trong một số trường hợp như của tôi, vì vậy điều này hiệu quả với tôi.


    Mặc dù đoạn mã này có thể giải quyết câu hỏi, bao gồm một lời giải thích thực sự giúp cải thiện chất lượng bài đăng của bạn. Hãy nhớ rằng bạn đang trả lời câu hỏi cho độc giả trong tương lai và những người đó có thể không biết lý do cho đề xuất mã của bạn.
    yennsarah

    @Amy cảm ơn vì tiền boa, tôi đã cố gắng giải thích và tôi hy vọng tôi đã thành công.
    MRTC
    Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
    Licensed under cc by-sa 3.0 with attribution required.