当我在IntellJ IDEA中运行spring boot项目时,为什么不将依赖项添加到类路径?

时间:2018-05-17 14:35:30

标签: java spring maven spring-boot intellij-idea

我的操作系统是Ubuntu 16.04,IDE是IntellJ IDEA 2018.1.3。

最近我尝试在Spring Boot中运行一个简单的Maven项目,但是当我运行这个应用程序时,我得到了一些错误消息,这些消息不存在依赖关系,如下所示: enter image description here

我认为依赖关系没有添加到类路径中,但是项目配置和maven依赖项是正常的。我尝试在操作系统为Windows 10的其他计算机上运行相同的项目。效果很好。

  • Maven:

enter image description here

  • 项目结构:

enter image description here

我的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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.test</groupId>
<artifactId>test1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <junit.version>4.12</junit.version>
    <mysql.version>5.1.43</mysql.version>
</properties>


<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.8.RELEASE</version>
</parent>

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

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.1</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
    </dependency>

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.41</version>
    </dependency>
</dependencies>
</project>

2 个答案:

答案 0 :(得分:1)

我只是删除idea.system.path文件中的idea/bin/idea.properties目录。

删除.idea/*.iml文件,然后重新导入项目。

但是我仍然不知道这个问题的原因和解决方案。

答案 1 :(得分:0)

以下过程用于解决通过library not found创建的项目的Maven Project错误。但是如果你使用Spring Initializr创建一个项目,那么这个问题就不存在了。现在在Project Structure中打开Intellij(快捷键Ctrl + Alt + Shift + S)。然后按照这张图片:

enter image description here

点击Create Artifact。然后按照图片:

enter image description here

选择所有库,然后右键单击,然后选择Put into /WEB_INF/lib。单击确定然后编译,然后一切都会好的。但请记住为每个新添加的库重复此过程。遗憾但是真的没有maven project的自动流程,但您可以切换到Spring Initializr

<强>更新

如果您是通过Spring Initializr创建了项目,那么我怀疑您可能正在使用系统上安装的默认Tomcat。在这种情况下,您应该使用运行它时由IDE自动管理的embedded tomcat。 maven依赖关系链接在下面,并删除您之前添加的tomcat配置:

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-tomcat -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <version>1.5.13.RELEASE</version>
</dependency>