0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!--
0003 ~ Licensed to the Apache Software Foundation (ASF) under one or more
0004 ~ contributor license agreements. See the NOTICE file distributed with
0005 ~ this work for additional information regarding copyright ownership.
0006 ~ The ASF licenses this file to You under the Apache License, Version 2.0
0007 ~ (the "License"); you may not use this file except in compliance with
0008 ~ the License. You may obtain a copy of the License at
0009 ~
0010 ~ http://www.apache.org/licenses/LICENSE-2.0
0011 ~
0012 ~ Unless required by applicable law or agreed to in writing, software
0013 ~ distributed under the License is distributed on an "AS IS" BASIS,
0014 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0015 ~ See the License for the specific language governing permissions and
0016 ~ limitations under the License.
0017 -->
0018
0019 <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/xsd/maven-4.0.0.xsd">
0020 <modelVersion>4.0.0</modelVersion>
0021 <parent>
0022 <groupId>org.apache.spark</groupId>
0023 <artifactId>spark-parent_2.12</artifactId>
0024 <version>3.0.0</version>
0025 <relativePath>../pom.xml</relativePath>
0026 </parent>
0027
0028 <artifactId>spark-core_2.12</artifactId>
0029 <packaging>jar</packaging>
0030 <name>Spark Project Core</name>
0031 <url>http://spark.apache.org/</url>
0032
0033 <properties>
0034 <sbt.project.name>core</sbt.project.name>
0035 </properties>
0036
0037 <dependencies>
0038 <dependency>
0039 <groupId>com.thoughtworks.paranamer</groupId>
0040 <artifactId>paranamer</artifactId>
0041 </dependency>
0042 <dependency>
0043 <groupId>org.apache.avro</groupId>
0044 <artifactId>avro</artifactId>
0045 </dependency>
0046 <dependency>
0047 <groupId>org.apache.avro</groupId>
0048 <artifactId>avro-mapred</artifactId>
0049 <classifier>${avro.mapred.classifier}</classifier>
0050 </dependency>
0051 <dependency>
0052 <groupId>com.google.guava</groupId>
0053 <artifactId>guava</artifactId>
0054 </dependency>
0055 <dependency>
0056 <groupId>com.twitter</groupId>
0057 <artifactId>chill_${scala.binary.version}</artifactId>
0058 </dependency>
0059 <dependency>
0060 <groupId>com.twitter</groupId>
0061 <artifactId>chill-java</artifactId>
0062 </dependency>
0063 <dependency>
0064 <groupId>org.apache.xbean</groupId>
0065 <artifactId>xbean-asm7-shaded</artifactId>
0066 </dependency>
0067 <dependency>
0068 <groupId>org.apache.hadoop</groupId>
0069 <artifactId>hadoop-client</artifactId>
0070 </dependency>
0071 <dependency>
0072 <groupId>org.apache.spark</groupId>
0073 <artifactId>spark-launcher_${scala.binary.version}</artifactId>
0074 <version>${project.version}</version>
0075 </dependency>
0076 <dependency>
0077 <groupId>org.apache.spark</groupId>
0078 <artifactId>spark-kvstore_${scala.binary.version}</artifactId>
0079 <version>${project.version}</version>
0080 </dependency>
0081 <dependency>
0082 <groupId>org.apache.spark</groupId>
0083 <artifactId>spark-network-common_${scala.binary.version}</artifactId>
0084 <version>${project.version}</version>
0085 </dependency>
0086 <dependency>
0087 <groupId>org.apache.spark</groupId>
0088 <artifactId>spark-network-shuffle_${scala.binary.version}</artifactId>
0089 <version>${project.version}</version>
0090 </dependency>
0091 <dependency>
0092 <groupId>org.apache.spark</groupId>
0093 <artifactId>spark-unsafe_${scala.binary.version}</artifactId>
0094 <version>${project.version}</version>
0095 </dependency>
0096 <dependency>
0097 <groupId>javax.activation</groupId>
0098 <artifactId>activation</artifactId>
0099 </dependency>
0100 <dependency>
0101 <groupId>org.apache.curator</groupId>
0102 <artifactId>curator-recipes</artifactId>
0103 </dependency>
0104 <!-- With curator 2.12 SBT/Ivy doesn't get ZK on the build classpath.
0105 Explicitly declaring it as a dependency fixes this. -->
0106 <dependency>
0107 <groupId>org.apache.zookeeper</groupId>
0108 <artifactId>zookeeper</artifactId>
0109 </dependency>
0110
0111 <!-- Jetty dependencies promoted to compile here so they are shaded
0112 and inlined into spark-core jar -->
0113 <dependency>
0114 <groupId>org.eclipse.jetty</groupId>
0115 <artifactId>jetty-plus</artifactId>
0116 <scope>compile</scope>
0117 </dependency>
0118 <dependency>
0119 <groupId>org.eclipse.jetty</groupId>
0120 <artifactId>jetty-security</artifactId>
0121 <scope>compile</scope>
0122 </dependency>
0123 <dependency>
0124 <groupId>org.eclipse.jetty</groupId>
0125 <artifactId>jetty-util</artifactId>
0126 <scope>compile</scope>
0127 </dependency>
0128 <dependency>
0129 <groupId>org.eclipse.jetty</groupId>
0130 <artifactId>jetty-server</artifactId>
0131 <scope>compile</scope>
0132 </dependency>
0133 <dependency>
0134 <groupId>org.eclipse.jetty</groupId>
0135 <artifactId>jetty-http</artifactId>
0136 <scope>compile</scope>
0137 </dependency>
0138 <dependency>
0139 <groupId>org.eclipse.jetty</groupId>
0140 <artifactId>jetty-continuation</artifactId>
0141 <scope>compile</scope>
0142 </dependency>
0143 <dependency>
0144 <groupId>org.eclipse.jetty</groupId>
0145 <artifactId>jetty-servlet</artifactId>
0146 <scope>compile</scope>
0147 </dependency>
0148 <dependency>
0149 <groupId>org.eclipse.jetty</groupId>
0150 <artifactId>jetty-proxy</artifactId>
0151 <scope>compile</scope>
0152 </dependency>
0153 <dependency>
0154 <groupId>org.eclipse.jetty</groupId>
0155 <artifactId>jetty-client</artifactId>
0156 <scope>compile</scope>
0157 </dependency>
0158 <dependency>
0159 <groupId>org.eclipse.jetty</groupId>
0160 <artifactId>jetty-servlets</artifactId>
0161 <scope>compile</scope>
0162 </dependency>
0163 <dependency>
0164 <groupId>javax.servlet</groupId>
0165 <artifactId>javax.servlet-api</artifactId>
0166 <version>${javaxservlet.version}</version>
0167 </dependency>
0168 <dependency>
0169 <groupId>org.apache.commons</groupId>
0170 <artifactId>commons-lang3</artifactId>
0171 </dependency>
0172 <dependency>
0173 <groupId>org.apache.commons</groupId>
0174 <artifactId>commons-math3</artifactId>
0175 </dependency>
0176 <dependency>
0177 <groupId>org.apache.commons</groupId>
0178 <artifactId>commons-text</artifactId>
0179 </dependency>
0180 <dependency>
0181 <groupId>com.google.code.findbugs</groupId>
0182 <artifactId>jsr305</artifactId>
0183 </dependency>
0184 <dependency>
0185 <groupId>org.slf4j</groupId>
0186 <artifactId>slf4j-api</artifactId>
0187 </dependency>
0188 <dependency>
0189 <groupId>org.slf4j</groupId>
0190 <artifactId>jul-to-slf4j</artifactId>
0191 </dependency>
0192 <dependency>
0193 <groupId>org.slf4j</groupId>
0194 <artifactId>jcl-over-slf4j</artifactId>
0195 </dependency>
0196 <dependency>
0197 <groupId>log4j</groupId>
0198 <artifactId>log4j</artifactId>
0199 </dependency>
0200 <dependency>
0201 <groupId>org.slf4j</groupId>
0202 <artifactId>slf4j-log4j12</artifactId>
0203 </dependency>
0204 <dependency>
0205 <groupId>com.ning</groupId>
0206 <artifactId>compress-lzf</artifactId>
0207 </dependency>
0208 <dependency>
0209 <groupId>org.xerial.snappy</groupId>
0210 <artifactId>snappy-java</artifactId>
0211 </dependency>
0212 <dependency>
0213 <groupId>org.lz4</groupId>
0214 <artifactId>lz4-java</artifactId>
0215 </dependency>
0216 <dependency>
0217 <groupId>com.github.luben</groupId>
0218 <artifactId>zstd-jni</artifactId>
0219 </dependency>
0220 <dependency>
0221 <groupId>org.roaringbitmap</groupId>
0222 <artifactId>RoaringBitmap</artifactId>
0223 </dependency>
0224 <dependency>
0225 <groupId>commons-net</groupId>
0226 <artifactId>commons-net</artifactId>
0227 </dependency>
0228 <dependency>
0229 <groupId>org.scala-lang.modules</groupId>
0230 <artifactId>scala-xml_${scala.binary.version}</artifactId>
0231 </dependency>
0232 <dependency>
0233 <groupId>org.scala-lang</groupId>
0234 <artifactId>scala-library</artifactId>
0235 </dependency>
0236 <dependency>
0237 <groupId>org.scala-lang</groupId>
0238 <artifactId>scala-reflect</artifactId>
0239 </dependency>
0240 <dependency>
0241 <groupId>org.json4s</groupId>
0242 <artifactId>json4s-jackson_${scala.binary.version}</artifactId>
0243 </dependency>
0244 <dependency>
0245 <groupId>org.glassfish.jersey.core</groupId>
0246 <artifactId>jersey-client</artifactId>
0247 </dependency>
0248 <dependency>
0249 <groupId>org.glassfish.jersey.core</groupId>
0250 <artifactId>jersey-common</artifactId>
0251 </dependency>
0252 <dependency>
0253 <groupId>org.glassfish.jersey.core</groupId>
0254 <artifactId>jersey-server</artifactId>
0255 </dependency>
0256 <dependency>
0257 <groupId>org.glassfish.jersey.containers</groupId>
0258 <artifactId>jersey-container-servlet</artifactId>
0259 </dependency>
0260 <dependency>
0261 <groupId>org.glassfish.jersey.containers</groupId>
0262 <artifactId>jersey-container-servlet-core</artifactId>
0263 </dependency>
0264 <dependency>
0265 <groupId>org.glassfish.jersey.inject</groupId>
0266 <artifactId>jersey-hk2</artifactId>
0267 </dependency>
0268 <dependency>
0269 <groupId>org.glassfish.jersey.test-framework.providers</groupId>
0270 <artifactId>jersey-test-framework-provider-simple</artifactId>
0271 <scope>test</scope>
0272 </dependency>
0273 <dependency>
0274 <groupId>io.netty</groupId>
0275 <artifactId>netty-all</artifactId>
0276 </dependency>
0277 <dependency>
0278 <groupId>com.clearspring.analytics</groupId>
0279 <artifactId>stream</artifactId>
0280 </dependency>
0281 <dependency>
0282 <groupId>io.dropwizard.metrics</groupId>
0283 <artifactId>metrics-core</artifactId>
0284 </dependency>
0285 <dependency>
0286 <groupId>io.dropwizard.metrics</groupId>
0287 <artifactId>metrics-jvm</artifactId>
0288 </dependency>
0289 <dependency>
0290 <groupId>io.dropwizard.metrics</groupId>
0291 <artifactId>metrics-json</artifactId>
0292 </dependency>
0293 <dependency>
0294 <groupId>io.dropwizard.metrics</groupId>
0295 <artifactId>metrics-graphite</artifactId>
0296 <exclusions>
0297 <exclusion>
0298 <groupId>com.rabbitmq</groupId>
0299 <artifactId>amqp-client</artifactId>
0300 </exclusion>
0301 </exclusions>
0302 </dependency>
0303 <dependency>
0304 <groupId>io.dropwizard.metrics</groupId>
0305 <artifactId>metrics-jmx</artifactId>
0306 </dependency>
0307 <dependency>
0308 <groupId>com.fasterxml.jackson.core</groupId>
0309 <artifactId>jackson-databind</artifactId>
0310 </dependency>
0311 <dependency>
0312 <groupId>com.fasterxml.jackson.module</groupId>
0313 <artifactId>jackson-module-scala_${scala.binary.version}</artifactId>
0314 </dependency>
0315 <dependency>
0316 <groupId>org.apache.derby</groupId>
0317 <artifactId>derby</artifactId>
0318 <scope>test</scope>
0319 </dependency>
0320 <dependency>
0321 <groupId>org.apache.ivy</groupId>
0322 <artifactId>ivy</artifactId>
0323 </dependency>
0324 <dependency>
0325 <groupId>oro</groupId>
0326 <!-- oro is needed by ivy, but only listed as an optional dependency, so we include it. -->
0327 <artifactId>oro</artifactId>
0328 <version>${oro.version}</version>
0329 </dependency>
0330 <dependency>
0331 <groupId>org.seleniumhq.selenium</groupId>
0332 <artifactId>selenium-java</artifactId>
0333 <scope>test</scope>
0334 </dependency>
0335 <dependency>
0336 <groupId>org.seleniumhq.selenium</groupId>
0337 <artifactId>selenium-htmlunit-driver</artifactId>
0338 <scope>test</scope>
0339 </dependency>
0340 <!-- Coerce sbt into honoring these dependency updates: -->
0341 <dependency>
0342 <groupId>net.sourceforge.htmlunit</groupId>
0343 <artifactId>htmlunit</artifactId>
0344 <scope>test</scope>
0345 </dependency>
0346 <dependency>
0347 <groupId>net.sourceforge.htmlunit</groupId>
0348 <artifactId>htmlunit-core-js</artifactId>
0349 <scope>test</scope>
0350 </dependency>
0351 <!-- at least just for tests, coerce SBT to use the updated httpcore/client version -->
0352 <dependency>
0353 <groupId>org.apache.httpcomponents</groupId>
0354 <artifactId>httpclient</artifactId>
0355 <scope>test</scope>
0356 </dependency>
0357 <dependency>
0358 <groupId>org.apache.httpcomponents</groupId>
0359 <artifactId>httpmime</artifactId>
0360 <scope>test</scope>
0361 </dependency>
0362 <dependency>
0363 <groupId>org.apache.httpcomponents</groupId>
0364 <artifactId>httpcore</artifactId>
0365 <scope>test</scope>
0366 </dependency>
0367 <!-- Added for selenium: -->
0368 <dependency>
0369 <groupId>xml-apis</groupId>
0370 <artifactId>xml-apis</artifactId>
0371 <scope>test</scope>
0372 </dependency>
0373 <dependency>
0374 <groupId>org.hamcrest</groupId>
0375 <artifactId>hamcrest-core</artifactId>
0376 <scope>test</scope>
0377 </dependency>
0378 <dependency>
0379 <groupId>org.hamcrest</groupId>
0380 <artifactId>hamcrest-library</artifactId>
0381 <scope>test</scope>
0382 </dependency>
0383 <dependency>
0384 <groupId>org.mockito</groupId>
0385 <artifactId>mockito-core</artifactId>
0386 <scope>test</scope>
0387 </dependency>
0388 <dependency>
0389 <groupId>org.scalacheck</groupId>
0390 <artifactId>scalacheck_${scala.binary.version}</artifactId>
0391 <scope>test</scope>
0392 </dependency>
0393 <dependency>
0394 <groupId>org.apache.curator</groupId>
0395 <artifactId>curator-test</artifactId>
0396 <scope>test</scope>
0397 </dependency>
0398 <dependency>
0399 <groupId>org.apache.hadoop</groupId>
0400 <artifactId>hadoop-minikdc</artifactId>
0401 <scope>test</scope>
0402 </dependency>
0403 <dependency>
0404 <groupId>net.razorvine</groupId>
0405 <artifactId>pyrolite</artifactId>
0406 <version>4.30</version>
0407 <exclusions>
0408 <exclusion>
0409 <groupId>net.razorvine</groupId>
0410 <artifactId>serpent</artifactId>
0411 </exclusion>
0412 </exclusions>
0413 </dependency>
0414 <dependency>
0415 <groupId>net.sf.py4j</groupId>
0416 <artifactId>py4j</artifactId>
0417 <version>0.10.9</version>
0418 </dependency>
0419 <dependency>
0420 <groupId>org.apache.spark</groupId>
0421 <artifactId>spark-tags_${scala.binary.version}</artifactId>
0422 </dependency>
0423
0424 <dependency>
0425 <groupId>org.apache.spark</groupId>
0426 <artifactId>spark-launcher_${scala.binary.version}</artifactId>
0427 <version>${project.version}</version>
0428 <classifier>tests</classifier>
0429 <scope>test</scope>
0430 </dependency>
0431 <dependency>
0432 <groupId>org.apache.spark</groupId>
0433 <artifactId>spark-network-shuffle_${scala.binary.version}</artifactId>
0434 <version>${project.version}</version>
0435 <classifier>tests</classifier>
0436 <scope>test</scope>
0437 </dependency>
0438
0439 <!--
0440 This spark-tags test-dep is needed even though it isn't used in this module, otherwise testing-cmds that exclude
0441 them will yield errors.
0442 -->
0443 <dependency>
0444 <groupId>org.apache.spark</groupId>
0445 <artifactId>spark-tags_${scala.binary.version}</artifactId>
0446 <type>test-jar</type>
0447 <scope>test</scope>
0448 </dependency>
0449
0450 <dependency>
0451 <groupId>org.apache.commons</groupId>
0452 <artifactId>commons-crypto</artifactId>
0453 </dependency>
0454
0455 </dependencies>
0456 <build>
0457 <outputDirectory>target/scala-${scala.binary.version}/classes</outputDirectory>
0458 <testOutputDirectory>target/scala-${scala.binary.version}/test-classes</testOutputDirectory>
0459 <resources>
0460 <resource>
0461 <directory>${project.basedir}/src/main/resources</directory>
0462 </resource>
0463 <resource>
0464 <!-- Include the properties file to provide the build information. -->
0465 <directory>${project.build.directory}/extra-resources</directory>
0466 <filtering>true</filtering>
0467 </resource>
0468 </resources>
0469 <plugins>
0470 <plugin>
0471 <groupId>org.apache.maven.plugins</groupId>
0472 <artifactId>maven-antrun-plugin</artifactId>
0473 <executions>
0474 <execution>
0475 <phase>generate-resources</phase>
0476 <configuration>
0477 <!-- Execute the shell script to generate the spark build information. -->
0478 <target>
0479 <exec executable="bash">
0480 <arg value="${project.basedir}/../build/spark-build-info"/>
0481 <arg value="${project.build.directory}/extra-resources"/>
0482 <arg value="${project.version}"/>
0483 </exec>
0484 </target>
0485 </configuration>
0486 <goals>
0487 <goal>run</goal>
0488 </goals>
0489 </execution>
0490 </executions>
0491 </plugin>
0492 <plugin>
0493 <groupId>org.apache.maven.plugins</groupId>
0494 <artifactId>maven-dependency-plugin</artifactId>
0495 <executions>
0496 <!-- When using SPARK_PREPEND_CLASSES Spark classes compiled locally don't use
0497 shaded deps. So here we store jars in their original form which are added
0498 when the classpath is computed. -->
0499 <!-- See similar execution in mllib/pom.xml -->
0500 <execution>
0501 <id>copy-dependencies</id>
0502 <phase>package</phase>
0503 <goals>
0504 <goal>copy-dependencies</goal>
0505 </goals>
0506 <configuration>
0507 <outputDirectory>${project.build.directory}</outputDirectory>
0508 <overWriteReleases>false</overWriteReleases>
0509 <overWriteSnapshots>false</overWriteSnapshots>
0510 <overWriteIfNewer>true</overWriteIfNewer>
0511 <useSubDirectoryPerType>true</useSubDirectoryPerType>
0512 <includeArtifactIds>
0513 guava,jetty-io,jetty-servlet,jetty-servlets,jetty-continuation,jetty-http,jetty-plus,jetty-util,jetty-server,jetty-security,jetty-proxy,jetty-client
0514 </includeArtifactIds>
0515 <silent>true</silent>
0516 </configuration>
0517 </execution>
0518 </executions>
0519 </plugin>
0520 <plugin>
0521 <groupId>org.codehaus.mojo</groupId>
0522 <artifactId>build-helper-maven-plugin</artifactId>
0523 <executions>
0524 <execution>
0525 <id>add-sources</id>
0526 <phase>generate-sources</phase>
0527 <goals>
0528 <goal>add-source</goal>
0529 </goals>
0530 <configuration>
0531 <sources>
0532 <source>src/main/scala-${scala.binary.version}</source>
0533 </sources>
0534 </configuration>
0535 </execution>
0536 </executions>
0537 </plugin>
0538 </plugins>
0539 </build>
0540
0541 <profiles>
0542 <profile>
0543 <id>Windows</id>
0544 <activation>
0545 <os>
0546 <family>Windows</family>
0547 </os>
0548 </activation>
0549 <properties>
0550 <script.extension>.bat</script.extension>
0551 </properties>
0552 </profile>
0553 <profile>
0554 <id>unix</id>
0555 <activation>
0556 <os>
0557 <family>unix</family>
0558 </os>
0559 </activation>
0560 <properties>
0561 <script.extension>.sh</script.extension>
0562 </properties>
0563 </profile>
0564 <profile>
0565 <id>sparkr</id>
0566 <build>
0567 <plugins>
0568 <plugin>
0569 <groupId>org.codehaus.mojo</groupId>
0570 <artifactId>exec-maven-plugin</artifactId>
0571 <version>1.6.0</version>
0572 <executions>
0573 <execution>
0574 <id>sparkr-pkg</id>
0575 <phase>compile</phase>
0576 <goals>
0577 <goal>exec</goal>
0578 </goals>
0579 </execution>
0580 </executions>
0581 <configuration>
0582 <executable>${project.basedir}${file.separator}..${file.separator}R${file.separator}install-dev${script.extension}</executable>
0583 </configuration>
0584 </plugin>
0585 </plugins>
0586 </build>
0587 </profile>
0588 <profile>
0589 <id>scala-2.13</id>
0590 <dependencies>
0591 <dependency>
0592 <groupId>org.scala-lang.modules</groupId>
0593 <artifactId>scala-parallel-collections_${scala.binary.version}</artifactId>
0594 </dependency>
0595 </dependencies>
0596 </profile>
0597 </profiles>
0598
0599 </project>