IntelliJ IDEA中带Maven的Java:如何正确导入依赖项

IntelliJ IDEA中带Maven的Java:如何正确导入依赖项,java,maven,intellij-idea,Java,Maven,Intellij Idea,我似乎无法导入任何添加的依赖项。在下面的代码(pom.xml)中,我们看到了JavaFX依赖项可以工作,而MongoDB依赖项是我自己添加的,但不起作用 <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://ma

我似乎无法导入任何添加的依赖项。在下面的代码(pom.xml)中,我们看到了JavaFX依赖项可以工作,而MongoDB依赖项是我自己添加的,但不起作用

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jonathan.woollettlight</groupId>
    <artifactId>CS-235 A3</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>12.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>12.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-sync</artifactId>
            <version>3.10.1</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <release>11</release>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.1</version>
                <configuration>
                    <mainClass>com.jonathan.woollettlight.App</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
这些不起作用

import org.mongodb.*;
import org.bson.*;
import com.mongodb.*;
使用
导入org.bson.*给出错误:
包“org.bson”在模块“org.mongodb.bson”中声明,但模块“com.jonathan.woollettlight”不读取它
。和导入com.mongodb.*给予
包'com.mongodb'在模块'org.mongodb.driver.sync.client'中声明,但模块'com.jonathan.woollettlight'不读取它

我的文件结构:

MongoDB的扩展外部依赖项

我尝试了其他依赖项,甚至跟踪了这段视频(),但没有成功。我无法对已添加的依赖项执行任何
import
语句

我应该指出,该项目最初是通过Maven JavaFX原型创建的。 要添加原型,请使用groupId
org.openjfx
、artifactId
javafxmaven原型和version
0.0.1

我不知道在这里该做什么。如果您能提供帮助,我将不胜感激。
链接到google drive上上传的项目如果你好奇/nice()

首先,请确保maven确实可以访问你添加的依赖项,即使没有IDE: 只需运行类似于:
mvn-package
的程序,就可以看到maven下载了依赖项

现在,如果项目是通过打开pom.xml导入idea的,intelliJ应该基于pom.xml中的信息构建其内部数据

因此,以下内容可能会有所帮助:

Maven->“重新导入所有Maven项目”-这将触发同步过程

设置->构建、执行、部署->构建工具->Maven:Maven主目录-intellij可能配置了不同于您认为使用的Maven(与ide捆绑在一起)。您的maven可能预先配置了一些自定义属性、代理、凭据等。)


文件->关闭项目,然后再次打开它,当然要打开pom.xml(只有在上面两项没有帮助的情况下)。如果intelliJ出于某种原因与pom.xml中的数据发生了几次内部数据结构的同步问题,这可以解决这种情况,所以我提到了这一点。

我刚刚下载了您的项目,我看到module-info.java只包含javafx.*需要

requires javafx.controls;
requires javafx.fxml;
尝试添加org.mongodb.bson,您应该能够导入或删除module-info.java文件以进行测试

我尝试删除module-info.java进行测试,并添加
requires
语句,我能够添加导入语句,如
import org.bson.*
我也在使用IntellijIDE

模块信息.java

App.java


我自己添加的MongoDB依赖项不起作用,这是什么意思。
?正如我在IDE屏幕截图上看到的,mongodb依赖项被正确地放置在
外部库下
?我尝试涉及mongodb依赖项的每个
导入
语句都不起作用。最好更新描述以显示哪些语句不起作用,因为现在我们可以猜出你的意思了。@PiotrS我添加了一些不起作用的
import
语句的示例。你能在外部库目录中展开maven mongodb依赖项吗?Java类似乎位于包com.mongodb.*下,而不是org.mongodb.*。下面是
mvn包的结果。其他建议的解决方案似乎都没有任何影响。我还添加了一个链接,以便有人可以下载该项目,如果他们这么好奇/不错的话。
requires javafx.controls;
requires javafx.fxml;