我似乎无法导入我添加的任何依赖项。在下面的代码(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>
有效的JavaFX import
语句:
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
这些无效。
import org.mongodb.*;
import org.bson.*;
import com.mongodb.*;
import org.bson.*;
给出错误:Package 'org.bson' is declared in module 'org.mongodb.bson', but module 'com.jonathan.woollettlight' does not read it
。然后import com.mongodb.*;
给出Package 'com.mongodb' is declared in module 'org.mongodb.driver.sync.client', but module 'com.jonathan.woollettlight' does not read it
我的文件结构:
扩展了MongoDB的外部依赖关系。
我尝试了其他依赖项,甚至都跟随了该视频(https://www.youtube.com/watch?v=NP6AnvZ0CTA),但没有效果。我无法对已添加工作的依赖项做出任何import
声明。
我应该注意该项目最初是通过Maven JavaFX原型创建的。
要添加原型,请使用groupId org.openjfx
,artifactId javafx-maven-archetypes
和版本0.0.1
。
我不知所措,将不胜感激。 如果您很好奇/很好(https://drive.google.com/file/d/1WKNg1G81dpOhrtO9W3OyRkL-rv10fbvO/view?usp=sharing),请链接到在Google云端硬盘上上传的项目
答案 0 :(得分:1)
我刚刚下载了您的项目,我看到module-info.java仅包含javafx。*要求。
requires javafx.controls;
requires javafx.fxml;
尝试添加您应该能够导入的org.mongodb.bson,或者可以删除module-info.java文件进行测试。
我尝试删除用于测试的module-info.java并添加了requires
语句,我能够添加诸如import org.bson.*;
之类的import语句。
我也在使用intellij IDE。
module-info.java
App.java
答案 1 :(得分:0)
首先,请确保您添加的依赖项确实可以被maven访问,即使没有IDE也是如此:
只需运行类似mvn package
的内容,即可看到maven下载了依赖项
现在,如果通过打开pom.xml将项目导入到构想中,则intelliJ应该基于pom.xml中找到的信息来构建其内部数据
因此以下内容可能会有所帮助:
Maven->“重新导入所有Maven项目” -这将触发同步过程
设置->构建,执行,部署->构建工具-> Maven :Maven主目录-intellij可能配置了与您认为不同的Maven(与ide捆绑在一起) 。您的Maven可能已预先配置了一些自定义属性,代理,凭据等)
文件->关闭项目,然后再次打开它,当然,打开pom.xml(仅当上述两项没有帮助时)。如果智能由于某种原因陷入内部数据结构与pom.xml中数据的同步问题,这对我来说已经发生了两次,因此可以解决这种情况。