You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Java运行SparkJava?Maven打包SparkJava应用依赖加载失败求助

一、Java中运行SparkJava的基本步骤
  • 添加SparkJava依赖到pom.xml:
    <dependency>
        <groupId>com.sparkjava</groupId>
        <artifactId>spark-core</artifactId>
        <version>2.9.4</version> <!-- 选用兼容Java 21的稳定版本 -->
    </dependency>
    
  • 编写基础SparkJava应用代码:
    import static spark.Spark.*;
    
    public class SparkApp {
        public static void main(String[] args) {
            port(4567); // 指定服务端口
            get("/hello", (req, res) -> "Hello SparkJava!");
        }
    }
    
  • 运行方式:
    • 直接在IDE中运行SparkApp类的main方法,启动后访问http://localhost:4567/hello即可查看结果
    • 打包完成后通过命令行执行Jar文件启动(需先解决依赖打包问题)
二、Maven打包SparkJava应用依赖加载问题的解决思路

你遇到的依赖无法加载问题,核心原因是默认的maven-jar-plugin仅打包项目自身代码,不会包含外部依赖库。以下是具体解决方法:

1. 使用maven-shade-plugin打包成Fat Jar(推荐方案)

该插件会将所有依赖合并到一个可执行Jar中,彻底解决运行时依赖缺失问题。在pom.xml的build/plugins节点下添加如下配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.4.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <!-- 替换为你的主类全限定名 -->
                        <mainClass>com.yourpackage.SparkApp</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

执行mvn clean package后,target目录下会生成包含所有依赖的Jar包,运行命令:java -jar your-app-name-1.0-SNAPSHOT.jar即可启动应用。

2. 验证Java版本兼容性

你使用的是Java 21,需确保SparkJava版本支持该版本。建议选用spark-core 2.9.4及以上版本,旧版本可能不兼容Java 17+环境。

3. 检查依赖范围设置

查看pom.xml中SparkJava依赖的scope属性,如果设置为provided,Maven打包时会排除该依赖,导致运行时找不到。确保依赖使用默认的compile范围(无需显式指定):

<dependency>
    <groupId>com.sparkjava</groupId>
    <artifactId>spark-core</artifactId>
    <version>2.9.4</version>
    <!-- 不要设置scope为provided -->
</dependency>

4. 清理Maven缓存

若依赖下载不完整或缓存损坏,执行以下命令强制更新依赖并重新打包:

mvn clean install -U

内容的提问来源于stack exchange,提问作者Johann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 21:55:59