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

IntelliJ IDEA maven项目是否使用maven下载的JAR来解析依赖项?

桂和同
2023-03-14

我正在使用IntelliJIDEA和maven作为构建工具在scala中编写spark应用程序。

我将它们部署在Azure HDInsight集群中。我为Intellij安装了Azure插件。

我使用事件集线器对数据进行流式处理,并在将其写入存储之前执行一些转换。

我对maven的工作有相当的了解--我认为它将pom.xml中提到的依赖关系获取到某个本地位置用户的.m2文件夹。当我们执行mvn包检查所有引用库的语法,然后构建应用程序的jar时,将引用这些jar。

我想了解在使用第二种方法运行时,IntelliJ IDEA中的依赖是如何解决的。

  1. 我可以做mvn清理和mvn封装。它清理、运行测试用例并构建JAR。然而,在IDE中,对于某些方法的方法调用,它显示为红色(not found)。我可以Ctrl+Click并转到从字节码反编译的EventData类并验证这一点。但是,我签入了项目窗格外部库中列出的jar。方法就存在于罐子里。没有该方法的jar可能在某个文件夹中,如.ivy

这两个错误都与事件集线器有关,我发现的一个建议是,引用的jar可能与所需的版本不同,并且我将事件集线器的正确版本匹配到我的spark版本。我也试过了,结果和上面一样--在maven中通过了,在IDE中失败了。

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure-eventhubs-spark_2.11</artifactId>
    <version>${spark.version}</version>
</dependency>

我认为maven使用我的.m2文件夹和其中的JAR来构建项目,IntelliJ使用其他东西(可能是ivy)来解决其开发环境中的依赖关系。有谁能帮我理解和解决这个问题吗?

  1. 除了在pom.xml中提及之外,是否有一种方法可以知道并告诉IntelliJ要使用哪个特定版本的jar?
  2. 有没有方法告诉IntelliJ使用maven收集的JAR,以便mvn包和IDE环境使用相同的JAR解析依赖关系?

共有1个答案

左丘弘致
2023-03-14

IntelliJ IDEA maven项目是否使用maven下载的JAR来解析依赖项?

是的,它会...

除了在pom.xml中提到之外,是否有方法知道并告诉IntelliJ使用哪个特定版本的jar?
是否有方法告诉IntelliJ使用maven收集的jar,以便mvn包和IDE环境使用相同的jar解析依赖关系?

通过这样做,所有依赖项都将被导入。intellij还将JAR设置在类路径中。

注意:如果您是第一次打开项目,您必须给Intellij一些时间来进行索引。

您也可以尝试mvn idea:idea,但我认为它是退休的选项。上面的命令将下载IntelliJ的项目插件。并且,上面的命令还将创建项目文件(.ipr)、模块文件(.iml)和工作区文件(.iws)。

最后,如果一切都不起作用...

在我的回答中这样做。

更新:

 类似资料:
  • 问题内容: 我创建了一个非常简单的默认应用程序,用于在Windows 7计算机上测试Eclipse Indigo / Maven v3.0.1设置。Hello World应用程序可以从Eclipse正常运行。 现在从命令行尝试进行测试。 在这一点上,我看到Maven下载了大量的依赖项。出于某种原因,尽管下载它会停滞不前,但只会部分停止。每次都不在同一时间,但是当前始终是相同的jar文件,例如… h

  • 我希望有人面对同样的问题来解决依赖。下面提到的文件 xsi:schemalocation=“http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd”xmlns=“http://maven.apache.org/pom/4.0.0”xmlns:xsi=“http://www.w3.org/2001/x

  • 我想通过Jenkins用maven Build运行一个项目。 使用的存储库-Git从存储库中提取代码 使用的构建工具--Maven 我的jenkins控制台输出 请注意:-如果你看不到图像,只需使用Ctrl++缩放即可

  • 我有一个Apache Ivy(版本2.4.0)和Netbean IDE(8.0.2)的设置。我无法解决成熟的maven项目的依赖关系(例如:org.glassfish.jersey)。Apache Ivy成功地解决了更特定模块的依赖关系,如(org.glassfish.jersey.core)。 非工作示例: 工作实例: 常春藤。xml ivysettings。xml build.xml(只是IV

  • 我有一个关于Maven依赖解析机制如何在多模块项目中工作的问题。 通常,我只在构建多模块项目时使用“mvn clean install”,我的假设是,如果项目中的任何模块需要以前的模块,依赖关系将通过访问本地存储库并加载相应的“jar”来解决。 由于项目内部原因,我必须使用“mvn清洁编译”,这个命令自然不会创建任何“jar”,而“install”不存在。所以在这里我开始想知道,多模块项目的依赖项

  • 问题内容: 改善这个问题 我正在寻找一种工具,该工具将基于对已编译字节码的静态分析,向我显示Java项目中的JAR依赖关系图。具体来说,我试图找出是否有可以消除的未使用JAR,但我也想更好地了解现有的依赖项。我没有使用Maven。 Dependency Finder 非常接近,但是它处理的是软件包而不是JAR,而且似乎没有任何方法可以查询没有依赖项的JAR。有什么建议吗?首选免费和开源。谢谢! 问