用于发布和开发应用程序的Apache Spark Maven依赖项

the*_*w89 6 java maven apache-spark

我必须按照教程使用maven为我的Apache Spark应用程序创建一个超级jar.

我已经在pom中设置了所有Spark Dependencies <scope>provided</scope>.这非常有效,但现在当我在本地运行应用程序时,我收到错误的Spark依赖项错误.

目前我不得不provided从pom中删除标签.

如何在构建应用程序以供发布时,如何提供提供的spark依赖项?

我使用Intellij作为IDE来开发应用程序.

T. *_*ęda 1

您可以创建单独的 Maven 配置文件。

最好的选择是在 POM 中包含 dependencyManagment 部分,您将在其中指定版本,然后在配置文件中您将只有 groupId +artifactId+scope

例如:

<profile>
    <id>dev</id>
    <activation>
        <activeByDefault>false</activeByDefault>
    </activation>
    <dependencies>
    <!-- Here Spark deps without provided -->
        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</profile>
<profile>
    <id>prod</id>
    <dependencies>
    <!-- Here Spark deps with provided -->
        <dependency>
            <groupId>...</groupId>
            <artifactId>...</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</profile>
Run Code Online (Sandbox Code Playgroud)