【问题标题】:How do I reference a jar file from an External Library using relative path in IntelliJ?如何使用 IntelliJ 中的相对路径从外部库中引用 jar 文件?
【发布时间】:2020-07-23 00:28:29
【问题描述】:

在我的外部库目录中,我可以找到我的 jar - 例如 hppc-0.8.1.jar(任意选择)。

External Library jars

我想引用这个 jar 以便将它提供给配置中的 SparkSession。但是,我只能用绝对路径引用它,这是一个问题,因为我的队友和我共享一个 repo。

我怎样才能引用这个 jar,这样我就不必每次推送时都使用绝对路径并产生合并冲突?注释行是我的队友路径,而包含的路径是我的路径。

                    .appName(appName)
                    .master("spark://" + sparkHost + ":" + sparkPort)
                    .config("es.nodes", esHost)
                    .config("es.port", esPort)
                    .config("es.index.auto.create", "true")
                    .config("es.read.metadata", true)
                    .config("es.mapping.date.rich", false)
                    .config("es.read.field.as.array.include", "OPUpdatedField")
//                    .config("spark.jars", "/Users/teammate/.gradle/caches/modules-2/files-2.1/org.elasticsearch/elasticsearch-hadoop/7.7.1/683ff752340d4f7466efba129cd8a8d62fe12093/elasticsearch-hadoop-7.7.1.jar")
                    .config("spark.jars", "/Users/myname/.gradle/caches/modules-2/files-2.1/org.elasticsearch/elasticsearch-hadoop/7.7.1/683ff752340d4f7466efba129cd8a8d62fe12093/elasticsearch-hadoop-7.7.1.jar")
                    .getOrCreate()```

【问题讨论】:

    标签: java apache-spark gradle intellij-idea


    【解决方案1】:

    如果库在项目根目录中,则路径将使用占位符相对存储。

    在库.xml 文件或项目.iml 文件中,您会看到如下内容:

    <component name="libraryTable">
      <library name="libs">
        <CLASSES>
          <root url="jar://$PROJECT_DIR$/libs/json.jar!/" />
    

    对于可以位于系统任何位置的项目外部路径,请考虑使用path variables

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 2021-11-11
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多