我如何在本地运行具有依赖项的代码,并在使用Maven创建Jar时排除它们

问题描述 投票:1回答:1

我是新来的,所以听起来可能很傻。我正在本地计算机上编写Scala Spark代码,然后将其上载到集群以执行(测试环境)。我的问题是,在创建Jar时,因为它们存在于集群中,所以我不想包括Spark依赖项。但是要在本地运行代码,我需要它们。到目前为止,我已经尝试提供所提供的范围

      <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.compat.version}</artifactId>
            <version>2.4.0</version>
            <scope>provided</scope>
        </dependency>

这允许我从Jar中排除依赖项,但是当我在本地运行它时,我需要删除作用域。我查看了其他范围选项,但找不到适合我的选项。我想念什么?

java scala maven apache-spark
1个回答
0
投票

您需要使用其他maven profiles

这样的事情可以帮助您:

<profiles>
    <profile>
        <id>test</id>
        …
        <dependencies>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_${scala.compat.version}</artifactId>
                <version>2.4.0</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
        …
    </profile>
    <profile>
        <id>debug</id>
        …
        <dependencies>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_${scala.compat.version}</artifactId>
                <version>2.4.0</version>
            </dependency>
        </dependencies>
        …
    </profile>
</profiles>

然后您可以在远程运行test配置文件,并在本地运行debug配置文件。

© www.soinside.com 2019 - 2024. All rights reserved.