2.IDEA中sbt创建Flink项目及build.sbt配置

1. Flink教程

1.1. 诸葛子房的博客基础篇

1.2. 诸葛子房的博客(新)

1.3. Flink中文社区

1.4. Flink系列文章zhisheng

1.5. 云邪的博客

2. 客户端操作

在这里插入图片描述

3. 用IDEA创建Flink项目的步骤(scala语言sbt构建工具

  • Scala 项目模板(官网)

  • sbt安装

  • 创建Flink模板项目

    sbt new tillrohrmann/flink-project.g8
    
  • 修改项目中build.properties中的sbt版本为当前电脑上一致的版本

  • 导入项目到idea中
    在这里插入图片描述

3.1. maven创建flink项目

mvn archetype:generate                               
-DarchetypeGroupId=org.apache.flink              
-DarchetypeArtifactId=flink-quickstart-java     
-DarchetypeVersion=1.10.0

4. sbt的assembly插件使用(打包所有依赖)

4.1. assembly github链接

4.2. sbt-assembly, 部署 fat jars(中文)

4.3. 使用插件sbt-assembly

在这里插入图片描述
在这里插入图片描述

4.4. sbt-assembly task 的关键字

  • assemblyJarName

    • 指定jar包的名字
      assemblyJarName in assembly := "something.jar"
      
  • test

    • 组装过程中跳过测试
      test in assembly := {}
      
  • mainClass

    • 指定主类
      mainClass in assembly := Some("com.example.Main")
      
  • assemblyOutputPath

    • 指定输出路径
      在这里插入图片描述
  • assemblyMergeStrategy

    • 路径名到合并策略的映射
  • assemblyExcludedJars

    • 排除jar
  • assemblyOption

    • exclude Scala library from assembly
      assembly / assemblyOption  := (assembly / assemblyOption).value.copy(includeScala = false)
      
  • assembledMappings

4.5. 将插件应用于多项目build.sbt

name := "AssemblyTestProject"

version := "1.0.0"

scalaVersion := "2.11.8"

lazy val commonSettings = Seq(
  version:= "2.0.0",
  organization:= "com.xiaofan",
  scalaVersion:="2.12.6",
  // 组装过程中跳过测试
  test in assembly :={}
)

lazy val app = (project in file("app"))
  .settings(commonSettings: _*)
  .settings(
    // 指定主类
    mainClass in assembly := Some("com.xiaofan.Main")
  )

lazy val utils = (project in file("utils"))
  .settings(commonSettings: _*)
  .settings(
    // 设置jar的名称
    assemblyJarName in assembly := "utils.jar"
  )

在这里插入图片描述

4.6. 合并策略

在这里插入图片描述
在这里插入图片描述

4.7. 常见解决jar包冲突的方法

  • 如果要排除已经属于容器的JAR文件(例如Spark),请考虑将依赖库的作用域限定为"provided"配置:

    libraryDependencies ++=Seq(
     "org.apache.spark"%%"spark-core"%"0.8.0-incubating"%"provided",
     "org.apache.hadoop"%"hadoop-client"%"2.0.0-cdh4.4.0"%"provided")
    
  • 不排除特定传递因子

    libraryDependencies ++=Seq(
     ("org.apache.spark"%%"spark-core"%"0.8.0-incubating").
     exclude("org.mortbay.jetty", "servlet-api").
     exclude("commons-beanutils", "commons-beanutils-core").
     exclude("commons-collections", "commons-collections").
     exclude("commons-logging", "commons-logging").
     exclude("com.esotericsoftware.minlog", "minlog")
    )
    
  • 其他排除方式参考

5. 寄语:莫见长安行乐处,空令岁月易蹉跎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值