java - 如何修复 [Error] realm = plugin>org.apache.maven.plugins :maven-compiler-plugin:3. x(在使用 Spring Boot 时发生)

标签 java spring macos maven spring-boot

问题

我决定得到 spring boot hello word使用 Java 1.8 的示例,但存在恼人的依赖性问题。在答案部分,我解释了是什么解决了我的问题,以及一些关于如何使计算机上的所有内容都保持最新的提示。 我得到的错误是:

[ERROR] realm =    plugin>org.apache.maven.plugins:maven-compiler-plugin:3.x
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/xxx/.m2/repository/org/apache/maven/plugins/maven-compiler-plugin/3.1/maven-compiler-plugin-3.1.jar
[ERROR] urls[1] = file:/Users/xxx/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar
[ERROR] urls[2] = file:/Users/xxx/repository/org/apache/maven/shared/maven-shared-utils/0.1/maven-shared-utils-0.1.jar
[ERROR] urls[3] = file:/Users/xxx/repository/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
[ERROR] urls[4] = file:/Users/xxx/.m2/repository/org/apache/maven/shared/maven-shared-incremental/1.1/maven-shared-incremental-1.1.jar
[ERROR] urls[5] = file:/Users/xxx/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[6] = file:/Users/xxx/.m2/repository/org/codehaus/plexus/plexus-compiler-api/2.2/plexus-compiler-api-2.2.jar
[ERROR] urls[7] = file:/Users/xxx/.m2/repository/org/codehaus/plexus/plexus-compiler-manager/2.2/plexus-compiler-manager-2.2.jar
[ERROR] urls[8] = file:/Users/xxx/.m2/repository/org/codehaus/plexus/plexus-compiler-javac/2.2/plexus-compiler-javac-2.2.jar
[ERROR] urls[9] = file:/Users/xxx/.m2/repository/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar
[ERROR] urls[10] = file:/Users/xxx/.m2/repository/log4j/log4j/1.2.12/log4j-1.2.12.jar
[ERROR] urls[11] = file:/Users/xxx/.m2/repository/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar
[ERROR] urls[12] = file:/Users/xxx/.m2/repository/com/google/collections/google-collections/1.0/google-collections-1.0.jar
[ERROR] urls[13] = file:/Users/xxx/.m2/repository/junit/junit/3.8.2/junit-3.8.2.jar

无效的解决方案

许多线程建议删除 ~/.m2/存储库,如 here但这并没有解决我的问题。

其他一些人说这是由于 Java 1.8 造成的,并且它非常适合 Java 1.7!但无法相信他们,因为这没有意义。我真的很想让这个简单的例子与 Java 8 一起工作。

解决方案总结

这是一个依赖冲突,但对我来说与 Java 版本或 .m2 文件夹下的存储库无关。

错误的根源是 plugin>org.apache.maven.plugins:maven-compiler-plugin:3.x 引起的依赖冲突。


其他相关资源

stackoverflow上其他类似但没有解决我spring boot问题的问题如下:

1- maven-build-error-failed-to-execute-goal-missing-a-class

2- failed-to-execute-goal-org-apache-maven-pluginsmaven-compiler-plugin2-3-2comp

3- maven-release-plugin-issue-failed-to-execute-goal-org-apache-maven-pluginsmav

4- maven-archetype-problem

最佳答案

解决方案

正如我所提到的,错误的根源是导致的依赖冲突 plugin>org.apache.maven.plugins:maven-compiler-plugin:3.x . 基于在某些情况下通过 <properties><java.version>1.8</java.version></properties> 指定 Java 版本的评论解决了一些人的问题(based on the guide here)。

但是在我的例子中(查看规范)只指定了 maven 编译器插件并通过以下代码解决了我的问题:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

规范

  • Java 1.8_45
  • maven 3.3.3
  • OS X 优胜美地

文件

基本上我必须在我的 pom.xml 中指定 maven-compiler-plugin(见下文)。

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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>


    <groupId>com.mycompany</groupId>
    <artifactId>helloworld</artifactId>
    <version>0.1.0</version>
    <!-- Inherit defaults from Spring Boot -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.2.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

    </dependencies>
    <build>
        <plugins>

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

        </plugins>
    </build>
</project>

示例 Controller .java

import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.web.bind.annotation.*;

@RestController
@EnableAutoConfiguration
public class SampleController {

    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleController.class, args);
    }
}

项目文件夹结构

按照maven标准结构即可。

提示如果这解决了您的问题,或者您遇到其他问题,请随时在评论中给我反馈。

关于java - 如何修复 [Error] realm = plugin>org.apache.maven.plugins :maven-compiler-plugin:3. x(在使用 Spring Boot 时发生),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31400173/

相关文章:

python - pyexiv2 未找到但已在 Mac OSX El Capitan 上使用 Homebrew 软件安装

java - 确保 GET/POST 请求上的 ObjectMapper 行为一致

xcode - 无法加载 Swift 运行时库(找不到图像)

Java 线程限制,JVM 9

java - Android TCP 连接到 C 服务器 : String transferred is noisy

spring - aws s3 删除对象不起作用

java - java spring 微服务中的 postgres 不显示数据

macos - 以编程方式确定 MacVim 何时完成文件编辑

java - 在java Android Studio中将数据从保存数组数据的字符串加载到字符串数组

java - GWT 应用程序获取 "404 The requested resource is not available"