7.4 打包代码与依赖

使用Maven构建的用Java编写的Spark应用

使用 maven-shade-plugin 插件来创建出包含所有依赖的超级 JAR 包。

<!-- 用来创建超级JAR包的Maven shade插件 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
</plugin>

使用sbt构建的用Scala编写的Spark应用

sbt 是一个通常在 Scala 工程中使用的比较新的构建工具。
sbt 预期的目录结构和 Maven 相似。

依赖冲突

当用户应用与 Spark 本身依赖同一个库时可能会发生依赖冲突,导致程序崩溃: 主要有两种解决方式: