我知道这是一个重复的问题,但其他主题的答案对我没有帮助。
我正在使用 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 生命周期阶段。
例如如果运行程序的版本适用于 java 8,但项目设置适用于 Java 11,那么我会收到此错误。如果我的两者都相同,那么我就没有任何问题。
<小时/>我强烈建议检查 Maven 和整个项目的所有设置。它有助于避免将来出现问题。删除 Maven 文件夹是一种替代解决方案,但这必须是您需要做的最后一件事。
关于java - 无法执行目标 org.apache.maven.plugins :maven-compiler-plugin:3. 8.0:编译(默认编译),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53173475/