spark项目打jar包,不包含依赖包问题的解决方案

本文介绍如何配置Maven项目,使打包后的Jar文件能够包含所有依赖的Jar包,适用于Spark应用部署。通过在pom.xml中添加assembly插件,并使用特定的构建命令,可以解决依赖丢失的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mvn clean package打包maven-archetype-webapp项目时,打包后的jar包含项目中引用的jar包(解压后,在WEB-INF有一个lib目录,该目录下有所有依赖包)。

mvn clean package打包maven-archetype-quickstart项目时,打包后的jar为什么不包含项目中引用的jar包呢?这样就会导致,spark-submit运行spark应用时会报各种jar包找不到,还必须得人为地把依赖jar全部丢到${SPARK_HOME}/jars目录中,这显然是不可接受的。

解决方案是:

在pom.xml文件中添加一个名为assembly的maven jar,如下

    <build>
        <finalName>sparkTestNew</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

然后,不再用mvn clean package打jar包,采用命令:mvn assembly:assembly。在target目录中有一个后缀是jar-with-dependencies的jar,这个jar包含依赖的jar包(class文件),spark-submit使用这个jar就行了。

转载于:https://www.cnblogs.com/koushr/p/5873384.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值