《企业级云原生白皮书项目实战》——第五章 大数据——5.3 实时计算Flink版——5.3.2 Flink任务开发相关(5) https://developer.aliyun.com/article/1228379?groupCode=supportservice
我们建议您将此项目导入IDE以开发和测试它。IntelliJ IDEA原生支持Maven项目。如果使用Eclipse,可以使用m2e插件导入Maven项目。默认情况下,某些Eclipse捆绑包包含该插件,否则需要您手动安装。
请注意:默认的Java JVM heap size对于Flink来说可能太小了。你必须手动增加它。在Eclipse中,选择RunConfifigurations->Arguments并写入VM Arguments框:-Xmx800m。在IntelliJ IDEA中,更改JVM选项的推荐方法是使用Help | Edit Custom VM Options选项菜单。
构建项目
如果要生成/打包项目,请转到项目目录并运行"mvn clean package"命令。执行后将会得到一个JAR文件:target/-.jar,其中包含您的应用程序,以及作为依赖项添加到应用程序的连接器和库。
注意:如果使用与StreamingJob不同的类作为应用程序的主类/入口点,我们建议您相应地更改pom.xml文件中的mainClass设置。这样,Flink就可以直接从JAR文件运行应用程序,而无需另外指定主类。
构建带依赖的jar包的模版
要构建包含连接器和库所需的所有依赖项的应用程序JAR,可以使用以下shade插件定义:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.1.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <confifiguration> <artifactSet> <excludes> <exclude>com.google.code.fifindbugs:jsr305</exclude> <exclude>org.slf4j:*</exclude> <exclude>log4j:*</exclude> </excludes> </artifactSet> <fifilters> <fifilter> <!-- Do not copy the signatures in the META-INF folder. Otherwise, this might cause SecurityExceptions when using the JAR. --> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </fifilter> </fifilters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>my.programs.main.clazz</mainClass> </transformer> </transformers> </confifiguration> </execution> </executions> </plugin> </plugins> </build>