【问题标题】:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project无法在项目上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile)
【发布时间】:2018-03-04 19:07:59
【问题描述】:

我有一个 java 项目,我重新配置为一个 Maven 项目。重新配置并添加所需的大部分依赖项后,当我运行mvn install 命令时,我在控制台中收到以下错误。我在this issue 上尝试了这里提到的解决方案,但它没有帮助

以下是控制台日志:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building FlockHydraAutomation 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ FlockHydraAutomation ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ FlockHydraAutomation ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 15 source files to C:\Maven\FlockHydra-Automation\FlockHydraAutomation\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.249 s
[INFO] Finished at: 2017-09-23T13:44:15+05:30
[INFO] Final Memory: 10M/220M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project FlockHydraAutomation: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[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/MojoFailureException

POM 文件:

<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.Flock</groupId>
    <artifactId>FlockHydraAutomation</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>FlockHydraAutomation</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <build>
        <sourceDirectory>flockWebclient</sourceDirectory>
        <resources>
            <resource>
                <directory>resources</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

附上Java编译器的截图: Java Compiler

【问题讨论】:

  • 看看mvn -version anc 检查你的java版本和java home。
  • 首先您使用的是 JRE 而不是通过环境变量配置的 JDK。此外,您应该遵循 Maven 中的约定,并且不要更改配置,例如设置 sourceDirectory 和资源。删除那些部分...

标签: java maven


【解决方案1】:

根据您对上一个答案的评论,您似乎确实指向了 JDK。 所以现在你可以试试这个,打开 Eclipse 并转到 Windows-> 首选项 -> Java -> 已安装的 JRE,并检查你是否指向 JRE。如果是,请更改 JDK 的路径并尝试再次运行 Maven 构建。希望这有助于解决问题。

【讨论】:

  • 如何更改jdk的路径?
【解决方案2】:

您必须确保您的 JAVA_HOME 环境变量指向 JDK(而不是 JRE),如错误所述。

[错误] 此环境中未提供编译器。也许您在 JRE 而不是 JDK 上运行?

执行mvn -version。输出将显示 JAVA_HOME 指向的目录。然后通过将 JAVA_HOME 变量设置为 JDK 路径来确保这是一个 JDK。

【讨论】:

  • 我的 JAVA_HOME 指向 C:\Program Files\Java\jdk1.8.0_121 但当我执行 mvn -version 时,它指向 JRE Java 版本:1.8.0_121,供应商:Oracle Corporation Java 主页: C:\Program Files\Java\jdk1.8.0_121\jre
【解决方案3】:

我遇到了同样的问题,遵循了上述建议,但问题仍然存在。

下面是我的 pom.xml

<build>
<plugins>
    <plugin>  
       <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.4</version>
        <configuration> 
            <source>1.8</source>
            <target>1.8</target>
            <fork>true</fork>
     <executable>C:\Program Files\Java\jdk\bin\javac</executable>
        </configuration>
        <executions>
            <execution>
                <id>tomcat-run</id>
                <goals>
                    <goal>exec-war-only</goal>
                </goals>
                <phase>package</phase>
                <configuration>
                    <path>/</path>
                    <attachartifactclassifier>exec-war</attachartifactclassifier>
                    <attachartifactclassifiertype>jar</attachartifactclassifiertype>
                </configuration>
            </execution>
                <execution>
      <goals>
        <goal>spring-boot:run</goal>
      </goals>

    </plugin>

</plugins>

要解决这个问题,请使用这个 pom.xml

<build>
<plugins>
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>

</plugins>

附件是我的 IDE 的快照。

image snapshot

【讨论】:

    【解决方案4】:

    我遇到了同样的错误,结果证明我的 .classpath 文件有问题:

    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="maven.pomderived" value="true"/>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    

    在我的例子中缺少指向“/WEB-INF/lib”文件夹的属性。

    【讨论】:

      猜你喜欢
      • 2016-08-06
      • 1970-01-01
      • 2020-03-24
      • 2017-06-23
      • 1970-01-01
      • 2022-01-04
      • 2019-04-09
      • 2017-02-18
      • 2020-07-30
      相关资源
      最近更新 更多