如何将spark测试包含为Maven依赖项

如何将spark测试包含为Maven依赖项,maven,apache-spark,Maven,Apache Spark,我继承了依赖于 org.apache.spark.LocalSparkContext 这是在火花核心测试。但是spark core jar(正确地)不包括仅测试类。我无法确定spark测试类是否/在哪里有自己的maven工件。这里的正确方法是什么?您可以通过添加测试jar向Spark的测试jar添加依赖项。例如,对于基于Scala 2.11的Spark 1.5.1: org.apache.spark spark-core_2.11 1.5.1 试验罐 测试 这种依赖关系提供了Spark的

我继承了依赖于

org.apache.spark.LocalSparkContext 

这是在火花核心测试。但是spark core jar(正确地)不包括仅测试类。我无法确定spark测试类是否/在哪里有自己的maven工件。这里的正确方法是什么?

您可以通过添加
测试jar
向Spark的
测试jar
添加依赖项。例如,对于基于Scala 2.11的Spark 1.5.1:


org.apache.spark
spark-core_2.11
1.5.1
试验罐
测试

这种依赖关系提供了Spark的所有测试类,包括
LocalSparkContext

我来到这里,希望能为在SBT中做同样的事情找到一些灵感。作为其他SBT用户的参考:应用for Spark 2.0会导致:

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.0.0" classifier "tests"
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.0.0" classifier "tests"

如果您想添加测试JAR,可以继续添加SBT,如下所述:


version := "0.1"

scalaVersion := "2.11.11"
val sparkVersion = "2.3.1"

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % sparkVersion % Provided,
  "org.apache.spark" %% "spark-core" % sparkVersion % Test classifier "tests",
  "org.apache.spark" %% "spark-core" % sparkVersion % Test classifier "test-sources",
  "org.apache.spark" %% "spark-sql" % sparkVersion % Provided,
  "org.apache.spark" %% "spark-sql" % sparkVersion % Test classifier "tests",
  "org.apache.spark" %% "spark-sql" % sparkVersion % Test classifier "test-sources",
  "org.apache.spark" %% "spark-catalyst" % sparkVersion % Test classifier "tests",
  "org.apache.spark" %% "spark-catalyst" % sparkVersion % Test classifier "test-sources",
  "com.typesafe.scala-logging" %% "scala-logging" % "3.9.0",
  "org.scalatest" %% "scalatest" % "3.0.4" % "test")
同样,如果您想在MAVEN依赖项上添加它,您可以通过以下方式完成:


    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_${scala.parent.version}</artifactId>
        <version>${spark.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_${scala.parent.version}</artifactId>
        <version>${spark.version}</version>
        <classifier>tests</classifier>
        <type>test-jar</type>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_${scala.parent.version}</artifactId>
        <version>${spark.version}</version>
        <classifier>test-sources</classifier>
        <type>test-jar</type>
        <scope>test</scope>
    </dependency>

<dependencies>

org.apache.spark
spark-core{scala.parent.version}
${spark.version}
org.apache.spark
spark-core{scala.parent.version}
${spark.version}
测验
试验罐
测试
org.apache.spark
spark-core{scala.parent.version}
${spark.version}
测试源
试验罐
测试

OK I see“Josh Rosen添加了一条评论-16/Sep/15 18:57我们使用的是测试jar依赖项,所以这是“不会修复的”。“显然我们需要弄清楚如何使用测试jar依赖项。”。。或者,正如您所说,它需要手动构建测试jar,在这种情况下,我只需复制并粘贴该类。顺便说一句,如果你想得到一些分数,你可以回答这个问题,我会给你奖励。这对
sbt
用户肯定很有用