java - 无法执行目标 org.apache.maven.plugins :maven-compiler-plugin:3. 8.0:编译(默认编译)

标签 java spring eclipse maven

我知道这是一个重复的问题,但其他主题的答案对我没有帮助。

我正在使用 Eclipse Photon,Java 版本:10,我已在 eclipse 和 pom.xml 文件中将 jdk/jre 版本设置为 10。我更改了 eclipse.ini 文件:

-Dosgi.requiredJavaVersion=10(已设置为 1.8)

我还在我的 pom.xml 中添加了插件:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>10</source>
                    <target>10</target>
                </configuration>
            </plugin>

没有任何帮助。这是我的 pom.xml :

<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.luv2code</groupId>
<artifactId>spring-security-demo-06-user-roles</artifactId>
<version>1.0</version>
<packaging>war</packaging>

<name>spring-security-demo</name>

<properties>

    <maven.compiler.source>10</maven.compiler.source>
    <maven.compiler.target>10</maven.compiler.target>
</properties>

<dependencies>

    <!-- Spring Security -->
    <!-- Spring Security WEB -->
    <!-- Spring Security taglibs -->
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>5.1.1.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>5.1.1.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
        <version>5.1.1.RELEASE</version>
    </dependency>


    <!-- Spring MVC support -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.1.2.RELEASE</version>
    </dependency>


    <!-- Servlet, JSP and JSTL support -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>

</dependencies>


<!-- TO DO: Add support for Maven WAR Plugin -->
<build>
    <finalName>spring-security-demo</finalName>

    <pluginManagement>
        <plugins>
            <plugin>
                <!--  Add Maven coordinates forL maven-war-plugin -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>10</source>
                    <target>10</target>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

在类文件中没有读取依赖项,我也尝试删除 .m2 存储库并启动 Eclipse 并执行以下操作:Maven->Clean、Maven->install 以及 Maven->update 项目。没有任何帮助。我现在真的被困在这里大约2-3个小时了。

注意:在Windows->首选项->安装的JRE中,jre10被标记为勾号。我改成标记jdk10了。但仍然错误:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project spring-security-demo-06-user-roles: Compilation failure

一切都工作正常,直到我添加了依赖项:spring-security-taglibs。

删除依赖项也不会执行任何操作。

最佳答案

检查 eclipse 中项目版本和 maven 运行程序版本的正确设置。

<小时/>

我使用 maven-compiler 插件重现了相同的问题,但使用版本 3.8.1:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project testName: Fatal error compiling

我的 POM 是:

 <plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-compiler-plugin</artifactId>
   <configuration>
      <source>11</source>
      <target>11</target>
      </configuration>
  </plugin>

澄清一下:

在项目中我使用Java 11和IntelijIDEA(但逻辑我认为对于Eclipse来说是一样的)。因此,只有当我的项目版本(正确检查项目结构 -> 项目设置)对应于 maven runner 的版本时,我才可以正常使用 Maven 生命周期阶段。

enter image description here

例如如果运行程序的版本适用于 java 8,但项目设置适用于 Java 11,那么我会收到此错误。如果我的两者都相同,那么我就没有任何问题。

<小时/>

我强烈建议检查 Maven 和整个项目的所有设置。它有助于避免将来出现问题。删除 Maven 文件夹是一种替代解决方案,但这必须是您需要做的最后一件事。

关于java - 无法执行目标 org.apache.maven.plugins :maven-compiler-plugin:3. 8.0:编译(默认编译),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53173475/

相关文章:

java - 在新方法中使用 boolean 结果时出错 - 需要字符串,但找到 boolean 值

java - 对对象 Java 的 ArrayList 进行排序

java - Spring + GWT 或 Spring 与 GWT

spring - spring boot 上 thymeleaf 的多个模板解析器

java - Spring MVC 自定义转换器不工作

java - Dalvik 堆栈深度不匹配 - 错误代码 1

java - 使用 GSON 使用自定义比较器反序列化扩展 TreeSet 的类

java - 动态创建Consumer

java - Eclipse 中的 Swing GUI

java - Eclipse - 无法在内部类上安装断点