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

如何为AWS KDA Flink应用制作含指定依赖的Fat Jar?

打包Flink依赖Jar为Fat Jar的方法

方法一:使用Maven(常用且配置简单)

  1. 新建一个空的Maven项目(不需要编写任何Java代码),在项目根目录创建pom.xml文件,填入以下配置:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.your.group</groupId>
    <artifactId>flink-deps-fatjar</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <dependencies>
        <!-- 引入所需的三个Flink依赖 -->
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-s3-fs-hadoop</artifactId>
            <version>1.15.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-sql-parquet</artifactId>
            <version>1.15.2</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-s3-fs-presto</artifactId>
            <version>1.15.2</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 用maven-shade-plugin打包成Fat Jar -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.3.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <finalName>flink-deps-1.15.2-fat</finalName>
                            <!-- 排除签名文件避免冲突 -->
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
  1. 确保本地安装了Maven,在项目根目录执行命令:
mvn clean package
  1. 执行完成后,target目录下会生成你需要的Fat Jar。

方法二:使用Gradle

  1. 新建空的Gradle项目,在根目录创建build.gradle文件,填入以下配置:
plugins {
    id 'java'
    id 'com.github.johnrengelman.shadow' version '7.1.2' // Shadow插件用于打包Fat Jar
}

group = 'com.your.group'
version = '1.0.0'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.apache.flink:flink-s3-fs-hadoop:1.15.2'
    implementation 'org.apache.flink:flink-sql-parquet:1.15.2'
    implementation 'org.apache.flink:flink-s3-fs-presto:1.15.2'
}

shadowJar {
    archiveBaseName = 'flink-deps-1.15.2-fat' // 自定义Jar名称
    exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA' // 排除签名文件
}

// 让build任务自动触发shadowJar打包
build.dependsOn shadowJar
  1. 安装Gradle后,在项目根目录执行:
./gradlew clean build
  1. 生成的Fat Jar会存放在build/libs目录下。

注意事项

  • 若部署到KDA后出现类冲突,可在打包配置中排除KDA环境已自带的Flink核心依赖(比如org.apache.flink:flink-core等)。
  • 打包完成后,将Fat Jar上传至S3,再在KDA应用配置中指定该Jar作为依赖即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:57:28