IntelliJ IDEA中带Maven的Java:如何正确导入依赖项
我似乎无法导入任何添加的依赖项。在下面的代码(pom.xml)中,我们看到了JavaFX依赖项可以工作,而MongoDB依赖项是我自己添加的,但不起作用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
<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原型创建的。
要添加原型,请使用groupIdorg.openjfx
、artifactIdjavafxmaven原型和version0.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;