【问题标题】:Can't compile/run a java project in IntelliJ无法在 IntelliJ 中编译/运行 java 项目
【发布时间】:2020-07-14 09:19:45
【问题描述】:

问题:

虽然昨天工作正常。今天,我无法编译我的项目(spring-boot)。我创建了一个演示项目来模拟我当前项目中发生的相同问题。

当我尝试使用运行按钮运行项目时,它不想编译。请注意编译失败的所有错误。此外,您可以看到所有依赖项都已导入(请参阅外部库):

我知道我可以通过在终端中输入 mvn spring-boot:run 来运行该应用程序。但出于某种原因,我不想这样做。

如你所见,这个demo是一个简单的spring-boot项目:

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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demox</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demox</name>
<description>Demo project for Spring Boot</description>

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

我尝试过的:

我尝试了无数的解决方案:

  • 选择构建->重建项目
  • 单击文件>使缓存无效/重新启动
  • mvn clean -> 构建 -> 制作项目
  • Maven -> 重新导入
  • 删除.iml文件并重新导入项目
  • 检查了 Preferences | 中没有排除项构建、执行、部署 |编译器 |排除

关于 IntelliJ IDEA:

IntelliJ IDEA 2019.3.4 (Ultimate Edition)
Build #IU-193.6911.18, built on March 17, 2020
Licensed to Hamza Belmellouki
Subscription is active until October 10, 2020
For educational use only.
Runtime version: 11.0.6+8-b520.43 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.3
GC: ParNew, ConcurrentMarkSweep
Memory: 1502M
Cores: 4
Registry: debugger.click.disable.breakpoints=true, documentation.show.toolbar=true, debugger.watches.in.variables=false, compiler.automake.allow.when.app.running=true, ide.tree.collapse.recursively=false, ide.balloon.shadow.size=0
Non-Bundled Plugins: AceJump, BrowseWordAtCaret, DBN, GsonFormat, IdeaVIM, Lombook Plugin, MavenRunHelper, com.4lex4.intellij.solarized, com.alayouni.ansiHighlight, com.berzanmikaili.intellij.monokai_pro, com.codota.csp.intellij, com.daylerees.rainglow, com.github.holgerbrandl.pasteimages/, com.github.mturlo.intellij.theme.spacegray, com.github.shiraji.emoji, com.godwin.json.parser, com.intellij.ideolog, com.intellij.jira, com.intellij.plugins.html.instantEditing, com.jetbrains.CyanTheme, com.jetbrains.colorful.toolwindow.icons, com.jetbrains.darkPurpleTheme, com.jetbrains.grayTheme, com.ppolivka.gitlabprojects, com.robohorse.robopojogenerator, com.sburlyaev.terminal.plugin, com.viartemev.requestmapper, com.vincentp.gruvbox-theme, commit-template-idea-plugin, mobi.hsz.idea.gitignore, net.seesharpsoft.intellij.plugins.csv, tanvd.grazi, org.asciidoctor.intellij.asciidoc, org.intellij.scala, org.root.GoogleIt, org.sonarlint.idea, some.awesome

我在这个问题上花了很多时间。我该如何解决?

来自 cmets:

运行mvn clean install -X:

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T19:41:47+01:00)
Maven home: /usr/local/Cellar/maven/3.6.0/libexec
Java version: 1.8.0_192, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home/jre
Default locale: en_MA, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.3", arch: "x86_64", family: "mac"
[DEBUG] Created new class realm maven.api
[DEBUG] Importing foreign packages into class realm maven.api
[DEBUG]   Imported: javax.annotation.* < plexus.core
[DEBUG]   Imported: javax.annotation.security.* < plexus.core
[DEBUG]   Imported: javax.enterprise.inject.* < plexus.core
[DEBUG]   Imported: javax.enterprise.util.* < plexus.core
[DEBUG]   Imported: javax.inject.* < plexus.core
[DEBUG]   Imported: org.apache.maven.* < plexus.core
[DEBUG]   Imported: org.apache.maven.artifact < plexus.core
[DEBUG]   Imported: org.apache.maven.classrealm < plexus.core
[DEBUG]   Imported: org.apache.maven.cli < plexus.core
[DEBUG]   Imported: org.apache.maven.configuration < plexus.core
[DEBUG]   Imported: org.apache.maven.exception < plexus.core
[DEBUG]   Imported: org.apache.maven.execution < plexus.core
[DEBUG]   Imported: org.apache.maven.execution.scope < plexus.core
[DEBUG]   Imported: org.apache.maven.lifecycle < plexus.core
[DEBUG]   Imported: org.apache.maven.model < plexus.core
[DEBUG]   Imported: org.apache.maven.monitor < plexus.core
[DEBUG]   Imported: org.apache.maven.plugin < plexus.core
[DEBUG]   Imported: org.apache.maven.profiles < plexus.core
[DEBUG]   Imported: org.apache.maven.project < plexus.core
[DEBUG]   Imported: org.apache.maven.reporting < plexus.core
[DEBUG]   Imported: org.apache.maven.repository < plexus.core
[DEBUG]   Imported: org.apache.maven.rtinfo < plexus.core
[DEBUG]   Imported: org.apache.maven.settings < plexus.core
[DEBUG]   Imported: org.apache.maven.toolchain < plexus.core
[DEBUG]   Imported: org.apache.maven.usability < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.* < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.authentication < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.authorization < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.events < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.observers < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.proxy < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.repository < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.resource < plexus.core
[DEBUG]   Imported: org.codehaus.classworlds < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.* < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.classworlds < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.component < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.configuration < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.container < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.context < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.lifecycle < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.logging < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.personality < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.Xpp3Dom < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlPullParser < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlPullParserException < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlSerializer < plexus.core
[DEBUG]   Imported: org.eclipse.aether.* < plexus.core
[DEBUG]   Imported: org.eclipse.aether.artifact < plexus.core
[DEBUG]   Imported: org.eclipse.aether.collection < plexus.core
[DEBUG]   Imported: org.eclipse.aether.deployment < plexus.core
[DEBUG]   Imported: org.eclipse.aether.graph < plexus.core
[DEBUG]   Imported: org.eclipse.aether.impl < plexus.core
[DEBUG]   Imported: org.eclipse.aether.installation < plexus.core
[DEBUG]   Imported: org.eclipse.aether.internal.impl < plexus.core
[DEBUG]   Imported: org.eclipse.aether.metadata < plexus.core
[DEBUG]   Imported: org.eclipse.aether.repository < plexus.core
[DEBUG]   Imported: org.eclipse.aether.resolution < plexus.core
[DEBUG]   Imported: org.eclipse.aether.spi < plexus.core
[DEBUG]   Imported: org.eclipse.aether.transfer < plexus.core
[DEBUG]   Imported: org.eclipse.aether.version < plexus.core
[DEBUG]   Imported: org.fusesource.jansi.* < plexus.core
[DEBUG]   Imported: org.slf4j.* < plexus.core
[DEBUG]   Imported: org.slf4j.helpers.* < plexus.core
[DEBUG]   Imported: org.slf4j.spi.* < plexus.core
[DEBUG] Populating class realm maven.api
[INFO] Error stacktraces are turned on.
[DEBUG] Message scheme: color
[DEBUG] Message styles: debug info warning error success failure strong mojo project
[DEBUG] Reading global settings from /usr/local/Cellar/maven/3.6.0/libexec/conf/settings.xml
[DEBUG] Reading user settings from /Users/hamzabelmellouki/.m2/settings.xml
[DEBUG] Reading global toolchains from /usr/local/Cellar/maven/3.6.0/libexec/conf/toolchains.xml
[DEBUG] Reading user toolchains from /Users/hamzabelmellouki/.m2/toolchains.xml
[DEBUG] Using local repository at /Users/hamzabelmellouki/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /Users/hamzabelmellouki/.m2/repository
[INFO] Scanning for projects...
[DEBUG] Using mirror central (https://nexus.sdf.x-hub.io/repository/maven-public/) for maven-releases (https://nexus.sdf.x-hub.io/repository/maven-releases).
[DEBUG] Using mirror central (https://nexus.sdf.x-hub.io/repository/maven-public/) for maven-snapshots (https://nexus.sdf.x-hub.io/repository/maven-snapshots).
[DEBUG] Using mirror central (https://nexus.sdf.x-hub.io/repository/maven-public/) for central (http://central).
[DEBUG] Extension realms for project com.example:demox:jar:0.0.1-SNAPSHOT: (none)
[DEBUG] Looking up lifecycle mappings for packaging jar from ClassRealm[plexus.core, parent: null]
[DEBUG] Using mirror central (https://nexus.sdf.x-hub.io/repository/maven-public/) for sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots).
[DEBUG] Using mirror central (https://nexus.sdf.x-hub.io/repository/maven-public/) for central (https://repo.maven.apache.org/maven2).
[DEBUG] Using mirror central (https://nexus.sdf.x-hub.io/repository/maven-public/) for apache.snapshots (https://repository.apache.org/snapshots).
[DEBUG] Extension realms for project org.springframework.boot:spring-boot-starter-parent:pom:2.2.6.RELEASE: (none)
[DEBUG] Looking up lifecycle mappings for packaging pom from ClassRealm[plexus.core, parent: null]
[DEBUG] Extension realms for project org.springframework.boot:spring-boot-dependencies:pom:2.2.6.RELEASE: (none)
[DEBUG] Looking up lifecycle mappings for packaging pom from ClassRealm[plexus.core, parent: null]
[DEBUG] === REACTOR BUILD PLAN ================================================
[DEBUG] Project: com.example:demox:jar:0.0.1-SNAPSHOT
[DEBUG] Tasks:   [clean, install]
[DEBUG] Style:   Regular
[DEBUG] =======================================================================

【问题讨论】:

  • mvn clean install -X。它将为您提供执行的详细信息,然后可能会在此处发布屏幕截图,以便我们可以查看如果您仍然无法修复它。
  • 你只得到这么多日志吗?
  • 我无法粘贴所有内容,因为堆栈溢出不支持超过 30000 个字符
  • 您能否尝试jetbrains.com/idea/download 的 2020.1 版本并使用默认设置运行 IDE:使用 File |管理设置 | Restore Default Settings... 操作以在 2020.1 版本中重置它们。另外请确保您在 /options 目录中存在path.macros.xml 文件,请参阅this comment

标签: java spring-boot maven intellij-idea


【解决方案1】:

类似的问题,原来 intellij 使用 /.m2/repository 和 maven /.m2

【讨论】:

    【解决方案2】:

    我为此拉了一个小时的头发。最后,事实证明 Intellij 使用的 maven home 与 maven 实际使用的不同。该库实际上并不存在于该 intellij 特定的 .m2 文件夹中。只有在您执行“使缓存无效并重新启动”之后才会显示这种差异,然后 IDE 开始以红色显示这些依赖项。

    【讨论】:

      【解决方案3】:

      感谢 Andry 的评论,我的问题得到了解决。 以下是我已完成的步骤:

      1. 导出 IDE 设置(键盘映射、插件)。您可以通过转到 File | 导出它。管理 IDE 设置 |导出设置... 它将导出一个 zip 文件,您可以稍后在恢复默认 IDE 配置时将其导入
      2. 转到文件|管理 IDE 设置 |恢复默认设置... IDE 将重新启动并恢复为默认配置。此命令重新生成了正确配置缺少的path.macros.xml 文件。注意可以在&lt;IDE config&gt;/options目录下归档
      3. 导入导出的zip文件文件|管理 IDE 设置 |导入设置...

      【讨论】:

      • 这是新的“无效缓存并重新启动”=))
      • 不幸的是它没有帮助我解决同样的问题
      • 我也遇到过这种可怕的情况。但是,我们不得不求助于这种破坏性的解决方案,这非常可悲!希望 Intellij 伙计们对此有所作为
      【解决方案4】:

      遇到同样的问题,但使用 Gradle 构建。这种情况下的问题是,IDE 在 build.gradle 文件中检查新版本的工件/依赖项并记录它们,因此您的 build.gradle 会使用工件的新版本代码进行更新。 IDE 虽然在执行此操作时不会下载最新版本。

      解决方案:在线时重建项目。或者检查 build.gradle 文件是否有修改并恢复到以前的版本。
      注意:这是一个 Gradle 解决方案,可以适当地替换为 Maven 构建。

      【讨论】:

        【解决方案5】:

        Maven 可能未在您的设置中正确配置。前往:

        File > Settings... > Build, Execution, Deployment > Build Tools > Maven
        

        并检查值Maven home directoryUser settings file,尤其是Local repository(确保与直接执行mvn install时使用的值相同)。

        【讨论】:

        • 我以为他/她说 Maven 成功了,但 IntelliJ 失败了。
        • 好吧,问题是当您在 IntelliJ 中将项目转换为 Maven 项目时,它将从设置中配置的本地存储库中获取所需的依赖项,并使用这些设置下载缺少的依赖项,如果这样配置不正确,它将无法下载 JAR,但是当您在终端中使用 Maven 时,它可能会使用可能有效的不同配置。
        【解决方案6】:

        如果 Maven 成功而 IntelliJ 失败,在我看来,您必须告诉 IntelliJ 查看与 Maven 相同的文件夹以创建和运行工件。

        转到您的项目设置并确保 IntelliJ 的输出文件夹是 /target,就在您的项目的根目录下。

        如果您有工件,请确保其构建路径与 Maven 创建的路径相同。

        在您使用 SDK 时检查它。确保你有正确的。

        【讨论】:

          【解决方案7】:

          您可以采取的步骤:

          1. 删除.m2文件夹
          2. 尝试运行mvn clean install 来安装所有依赖项。

          对于 IntelliJ,为 Maven 配置

          Run/Debug Configurations -> Maven -> Command Line: clean install
          

          对于运行 Spring Boot:

          Run/Debug Configurations -> Spring Boot
          

          Code Coverage:

          Run/Debug Configurations -> Spring Boot -> Code Coverage
          

          【讨论】:

          • 另外,我已经检查了所有的部门都在 .m2 文件夹中。
          • 您在问题中写了mvn clean
          • 尝试删除.m2文件夹并再次运行mvn clean install
          • 删除 .m2 文件夹并运行 mvn clean install 后,它也无法编译。我认为这是一个特定于 IDE 的问题。
          • 从命令行尝试mvn clean install,然后运行mvn spring-boot:run来运行你的Spring Boot应用程序
          猜你喜欢
          • 2016-08-05
          • 1970-01-01
          • 1970-01-01
          • 2019-12-07
          • 2018-03-26
          • 2017-12-30
          • 1970-01-01
          • 2019-03-25
          • 1970-01-01
          相关资源
          最近更新 更多