当前位置: 首页 > 知识库问答 >
问题:

JavaIntelliJ IDEA中的Maven:如何正确导入依赖项

巩才捷
2023-03-14

我似乎无法导入任何添加的依赖项。在下面的代码(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 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.*;

导入org.bson.*;给出错误时:包'org.bson'在模块'org.mongodb.bson'中声明,但是模块'com.jonathan.woollettlight'没有读取它。并且导入com.mongodb.*;给出包'com.mongodb'在模块'org.mongodb.driver.sync.client'中声明,但是模块'com.jonathan.woollettlight'没有读取它

我的文件结构:

扩展了MongoDB的外部依赖关系。

我尝试了其他依赖项,甚至跟随了这个视频(https://www.youtube.com/watch?v=NP6AnvZ0CTA),但没有成功。我无法对我添加的依赖项进行任何导入语句。

我应该注意到这个项目最初是通过Maven JavaFX原型创建的。要添加原型,请使用group Idorg.openjfx、artifactIdjavafx-maven-archetypes和version0.0.1

我不知道在这里做什么,任何帮助都将不胜感激。如果你那么好奇/善良,链接到上传到谷歌驱动器的项目(https://drive.google.com/file/d/1WKNg1G81dpOhrtO9W3OyRkL-rv10fbvO/view?usp=sharing)

共有2个答案

孟俊晖
2023-03-14

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

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

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

马文-

背景-

文件-

晋俊贤
2023-03-14

我刚下载了你的项目,我看到了模块信息。java只包含javafx。*要求。

requires javafx.controls;
requires javafx.fxml;

尝试添加组织。mongodb。bson您应该能够导入或删除模块信息。用于测试的java文件。

我尝试删除模块信息。为了测试和添加需要语句,我可以添加导入语句,比如import org。bson。* 我也在使用intellij IDE。

module-info.java

应用程序。JAVA

 类似资料:
  • 问题内容: 所以快速的背景是我正在创建一个Java程序,该程序使用许多不同的导入 我知道Netbeans找不到这些文件,因为我的计算机上没有这些文件。但是有没有办法让Netbeans自动与org.apache连接并检索这些文件?还是我只需要去下载它们。有人建议使用Maven,但是我不确定这是否是正确的解决方案,或者如何解决? 谢谢 问题答案: 除非您使用Maven结构(请参见此处,Maven入门)

  • 我有一个关于智能想法11的小问题。我刚刚从subversion导入了一个项目--它是一个maven项目。但是我在maven库依赖项中遇到了一个问题,因此我无法自动包含所有maven依赖项-IDEA仅在我打开该类时才显示依赖项错误/这就是我在这里得到的结果: 所以我希望所有的依赖项都自动添加--这是可能的还是我必须通过所有的类文件来识别和添加maven依赖项?! 但我认为逻辑上它不会包含和检查前面的

  • 我已经使用GoogleGuice几个月了。我对它很满意,但似乎我用错了。我创造了很多辅助注射,有时还有两个注射器。 因此,我想了解这里的一般原则。 是否应该为连接主类所有内容的所有应用程序配备一个喷油器? 最佳实践是关于从应用程序一开始就尝试在构造函数中注入大量内容吗?(我看到了测试的优势) 我的主要问题是,有时我觉得某些对象组的创建属于某个组件。有必要封装它吗?你会如何处理? 当您拥有一个重要的

  • 我面临的第一个问题是提供的依赖关系,该依赖关系总是作为运行时写入pom.xml。 第二个问题是动态版本,我使用它来进行较小的版本更改。Maven和Gradle有不同的符号,maven-publish只是将Gradle的符号写入pom.xml 下面是我的例子:

  • 问题内容: 我对IntelliJ IDEA 11有一个小问题。我刚刚从subversion导入了一个项目-它是一个maven项目。但是我在maven库依赖项方面存在问题,因此我无法自动包含所有maven依赖项-IDEA仅在打开该类时才显示依赖项错误/那就是我在这里得到的: 因此,我希望所有依赖项都自动添加-是否可行?还是我必须遍历所有类文件才能识别并添加Maven依赖项? 更新:经过一些修改后,我

  • 问题内容: 我对使用Spring将对象注入到类中有疑问。我在项目中使用了以下代码: 然后通常在以下方法上使用它: 否则,我在Spring示例中发现了注入构造函数的情况: 所以两者都正确吗?还是每个都有其属性和用法? 问题答案: tl; dr-构造函数注入是执行DI的最佳方法 后者是正确的,并不是因为Spring或任何依赖注入容器,而是面向对象的类设计原则。 细节 应该设计一种类型,以便您只能根据其