Java 导入com.mongodb.MongoClient是';t intellij IDEA 2018.1.6认可

Java 导入com.mongodb.MongoClient是';t intellij IDEA 2018.1.6认可,java,mongodb,spring-mvc,intellij-idea,Java,Mongodb,Spring Mvc,Intellij Idea,我正在尝试创建一个项目,在该项目中,我将能够通过我的控制器访问mongo db,并从用户那里获取表单 在pom文件中,我已向mongodb驱动程序声明,但当我尝试“导入com.mongodb.MongoClient”时,我收到一个错误-无法解析符号mongodb 我正在尝试将mongodb java驱动程序与spring boot结合使用,因为我已经在M101J课程中学习了如何使用 pom-这是文件- <?xml version="1.0" encoding="UTF-8"?>

我正在尝试创建一个项目,在该项目中,我将能够通过我的控制器访问mongo db,并从用户那里获取表单

在pom文件中,我已向mongodb驱动程序声明,但当我尝试“导入com.mongodb.MongoClient”时,我收到一个错误-无法解析符号mongodb

我正在尝试将mongodb java驱动程序与spring boot结合使用,因为我已经在M101J课程中学习了如何使用

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>
    <artifactId>form-java-spring-freemarker</artifactId>
    <name>form-java-spring-freemarker</name>
    <description>form-java-spring-freemarker</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.5.RELEASE</version>
    </parent>

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

    <dependencies>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-sync</artifactId>
            <version>3.9.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
文件树-


正如我在评论中提到的那样,由于较新版本的mongodb driver 3.7+和spring boot starter依赖性之间的冲突,我也有了预期的结果。并通过添加而不是

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

org.springframework.boot
spring启动程序父级
2.0.0.1版本
更新版本,如:

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

org.springframework.boot
spring启动程序父级
2.1.4.1发布
因此,我强烈建议使用最新版本的驱动程序和spring boot starter依赖项。我相信这会让你避免犯这样的错误


但是,您也可以避免使用旧版本的mongodb java驱动程序,正如您所做的那样。

Argh原始组织的遗留问题!显示了我多么费心去看包名。您是否确信您已更新了所有项目依赖项?通常,这类事情通常意味着maven尚未撤销pom中所做的更改。IntelliiJ可能会提示您启用自动更新,但您可能错过了消息。您可以从菜单中启用自动更新。运行
mvn依赖项:resolve
,然后重试。@EugenCovaci。两个都做了,还是不走运。Intellij甚至告诉我“构建成功”好吧!我已经将mongodb驱动程序的版本降级到3.6.4,并且成功了。谢谢你们两位!阿萨夫,实际上,这是一个非常有趣的错误。我有
java:无法访问com.mongodb.MongoClientSettings未找到问题的com.mongodb.MongoClientSettings类文件
,因为
spring boot starter父项
依赖关系。如果我删除它,那么我就不会对mongo java驱动程序的更新版本发出任何警告。所以我认为这是由于SpringBootStarter库和mongo更新的驱动程序3.7+版本之间的冲突造成的。或者使用旧版本,如3.4/3.6。
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
</parent>