Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IntelliJ IDEA maven项目是否使用maven下载的JAR来解决依赖关系?_Maven_Apache Spark_Intellij Idea_Dependencies_Azure Eventhub - Fatal编程技术网

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

IntelliJ IDEA maven项目是否使用maven下载的JAR来解决依赖关系?,maven,apache-spark,intellij-idea,dependencies,azure-eventhub,Maven,Apache Spark,Intellij Idea,Dependencies,Azure Eventhub,我使用IntelliJ IDEA和maven作为构建工具,在scala中编写spark应用程序 我将它们部署在Azure HDInsight集群中。我已经为Intellij安装了Azure插件 我使用事件集线器来传输数据,并在将数据写入存储器之前执行一些转换 我对spark、scala、Intellij和事件中心都是新手 我用两种不同的方式调试程序: 构建jar(使用mvn clean和mvn包),并使用spark submit向spark cluster提交应用程序 单击具有主要功能的对象左侧

我使用IntelliJ IDEA和maven作为构建工具,在scala中编写spark应用程序

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

我使用事件集线器来传输数据,并在将数据写入存储器之前执行一些转换

我对spark、scala、Intellij和事件中心都是新手

我用两种不同的方式调试程序:

构建jar(使用mvn clean和mvn包),并使用spark submit向spark cluster提交应用程序 单击具有主要功能的对象左侧的小播放按钮以执行代码

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

我想了解IntelliJ IDEA在使用第二种方法运行时如何解决依赖关系

  • 我能做mvn清洁和mvn包。它清理、运行测试用例并构建jar。然而在IDE中,对于某些方法的方法调用,它显示为红色(未找到)。我可以按住ctrl键并单击,然后转到从字节码反编译的EventData类,并验证这一点。但是,我签入了项目窗格外部库中列出的jar。该方法存在于罐子中。没有该方法的jar可能位于.ivy之类的文件夹中
  • 我能做mvn清洁和mvn包。IDE并没有为不可用的值显示任何红色标记,但当我尝试使用绿色播放按钮运行它时,它会显示找不到值的错误。我甚至可以按住ctrl键并单击,然后导航到该类并查看它是否存在
  • 这两个错误都与事件中心有关,我发现的一个建议是,引用的jar可能与所需版本不同,并且我将事件中心的正确版本与spark版本相匹配。我也尝试过,结果与上面相同——在maven中通过,在IDE中失败

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-eventhubs-spark_2.11</artifactId>
        <version>${spark.version}</version>
    </dependency>
    
    
    com.microsoft.azure
    azure-eventhubs-spark_2.11
    ${spark.version}
    
    我认为maven使用我的.m2文件夹和其中的JAR来构建项目,IntelliJ使用其他东西(可能是ivy)来解决其开发环境中的依赖关系。有人能帮我理解和解决这个问题吗

  • 除了在pom.xml中提及之外,还有没有其他方法可以知道并告诉IntelliJ使用哪种特定版本的jar
  • 有没有办法告诉IntelliJ使用maven收集的jar,以便mvn包和IDE环境使用相同的jar解决依赖关系
  • IntelliJ IDEA maven项目是否使用maven下载的JAR来 解决依赖关系

    是的,它会

    有没有办法知道并告诉IntelliJ jar的具体版本 除了在pom.xml中提及之外,是否还要使用?
    有没有办法告诉我 IntelliJ使用maven收集JAR,以便mvn包和IDE 环境使用相同的jar解析依赖关系

    如果从现有源打开maven项目并选择build tool as maven Intellij自动理解依赖关系

    有几种方法可以在IntelliJ IDEA中导入Maven项目。最标准的方法是直接打开
    pom.xml
    文件。您可以通过单击“打开”在欢迎屏幕中执行此操作:

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

    注意:如果您第一次打开项目,您必须给intelli j一些时间来编制索引

    你也可以试试
    mvn idea:idea
    ,但我认为它已经退出了。 上面的命令将下载IntelliJ的项目插件。上面的命令还将创建项目文件(.ipr)、模块文件(.iml)和工作区文件(.iws)

    最后,如果什么都不起作用

    你喜欢这个吗

    更新:

    mvn依赖关系:分析
    将给出依赖关系的完整列表

    mvn depdency:tree
    将所有直接依赖项和可传递依赖项显示为tree


    参见

    嗨,它有用吗?如果您作为所有者很好,并且是的,这很有帮助,我可以导入所有依赖项。然而,我的问题是,即使在导入maven中提到的所有依赖项之后,我仍然会得到错误。这可能是因为IntelliJ引用的jar版本与我在pom.xml中指定的版本不同。无法弄清楚这是哪一个jar文件?无论您在pom.xml中提到什么,它都应该提到sametere可能是可传递的(直接的)依赖项,比如jar1依赖于jar1.1,但是在pom.xml中也提到了jar1.2。。。。如果是这样的话,你所说的一切都是可能的。在正常情况下,它应该将pom.xml中的所有JAR放入intellij classpathjar文件azure-eventhubs-spark_2.11中。当我在项目窗格中查看外部库时,版本匹配并且方法存在。但是,当我按住ctrl键并单击该类时,我需要反编译jar旧版本,而该方法不存在。