Idea IntelliJ Maven项目无法构建。

11

我有一个Maven项目。 Maven构建成功。但是我无法运行此项目。

[INFO] 构建成功

该项目包含一个模块。Idea无法看到依赖项。

Error:(3, 38) java: D:\Dropbox\Programming\java\spring\springBook\src\main\java\ch14\validator\ContactTestValidator.java:3: 
package org.springframework.stereotype does not exist

POM:

<?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>springBook</groupId>
<artifactId>springBook</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- Shared version number properties -->
<properties>
    <org.springframework.version>3.2.3.RELEASE</org.springframework.version>
</properties>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <!--для валидации бинов необходима-->
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.5.6</version>
    </dependency>
    <dependency>
        <!--Spring Data JPA использует его - добавим и пользуемся-->
        <!--API для работы с датами-->
        <!--ch14 validator-->
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>2.0</version>
    </dependency>
    <dependency>
        <!--ch14 validator-->
        <!--API интерфейса JSR-303-->
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
    </dependency>
    <dependency>
        <!--ch14 validator-->
        <!--API, которая поддерживает интерфейс JSR-303 - BeanValidation-->
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.0.2.GA</version>
    </dependency>
    <dependency>
        <!--для валидации. (@Type...)-->
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.5.6-Final</version>
    </dependency>
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjtools</artifactId>
        <version>1.6.2</version>
    </dependency>
    <!--Spring framework-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${org.springframework.version}</version>
    </dependency>
</dependencies>
<build>
    <finalName>springBook</finalName>
</build>
</project>

您能帮我吗?很遗憾,我无法添加截图..

以下是截图:

http://screencast.com/t/iNaWO9gy http://screencast.com/t/iBGTyMpgH

项目设置 - 库 - 空;

重新导入没有帮助;


你在IntelliJ中的Maven项目中添加了pom.xml文件吗? 如果你这样做了,你就不应该看到空的库,因为它们应该包含你的.jar依赖项。 - zpontikas
2
你尝试打开 Maven 项目 工具窗口并点击 重新导入所有 Maven 项目 按钮了吗? - Morfic
文件 -> 清除缓存 / 重启 - RMachnik
你设置了Maven环境变量还是在IDE设置中设置了Maven?如果没有,Intellij将无法找到Maven并有时会出现问题... - morpheus05
8个回答

37

请按以下步骤操作:

  1. 在您的文件中找到pom.xml
  2. 右键单击它-> Maven -> 导入
  3. 等待项目加载完成:D
  4. 按下ctrl+alt+shift+s (这将打开“项目”窗口。)
  5. 转到库并查看它们是否为空(它们不应该为空)
  6. 如果它们为空,请发布完整的pom.xml,以便我可以看到问题
  7. 如果仍然有问题,请转到“文件”->无效缓存/重新启动
  8. 进入maven并重新导入所有maven项目

现在我在项目元素上遇到了“无法重新连接。检查Maven模型以解决问题”的错误。 - yazabara
我已经添加了完整的pom.xml文件; - yazabara
你的pom.xml文件中缺少以下标签: <modelVersion>4.0.0</modelVersion> - zpontikas
在 Mac OS 中,ctrl+alt+shift+s 是什么意思? - Penguin
1
@Penguin: ⌘ + ; - Daniel
显示剩余2条评论

6

选项 Maven -> 重新导入 应该强制Intellij重新加载所有依赖项。或者,如评论中提到的,您可以在 Maven项目 视图中单击 重新导入所有Maven项目 按钮。


重新导入并没有帮助; - yazabara

3
在我的情况下,我有自己的apache-maven-3.5.2文件夹,一个配置错误导致了我的问题。也许这也是你的情况:匆忙中,我将本地存储库设置为C:/my/folder/apache-maven-3.5.2/settings.xml,但它必须是一个文件夹,所以Maven不允许我下载依赖项。然后我改变了默认设置(如图片所示),就可以了。

enter image description here


1

右键单击 pom.xml,然后点击 Add as Maven Project


1
打开模块依赖项(在模块上按F12),转到Modules -> Dependencies,确保Maven导入是其中的一部分。

这是问题所在,您缺少Maven依赖项,请单击右侧的绿色勾号,并将Maven依赖项添加为此模块的依赖项。 - David

1
以下方法对我有效。
  1. 从本地存储库中删除了maven依赖项
  2. 运行mvn clean install重新下载依赖项
  3. 文件-->无效缓存/重启
  4. 我仍然看到编译错误
  5. 在我的Mac上,我按下Option + Enter,IntelliJ要求我将jar添加到类路径中
  6. 构建-->制作项目

1

如果这个答案没有帮助到你,尝试从源代码导入项目。


1
我曾经遇到过同样的问题,而且问题很小。我已经改变了maven的settings.xml文件的位置,Intellij从C:\users\.m2\settings.xml获取默认设置。
所以,请按照以下步骤将您的maven settings.xml指向正确的文件: 文件 → 设置 → 构建、执行、部署 → Maven 然后在右侧窗口中,将“用户设置文件”覆盖为您本地磁盘上的settings.xml文件。
如果您在非默认位置安装了maven,则可以在以下位置找到该文件: \apache-maven-3.2.3\conf\settings.xml

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接