Flink实战:02.保存项目为archetype模板

二维码
| Apr 19, 2020 | 原创

上一节:01.创建项目结构 内容中,我们利用官方提供的 Flink 模板生成了一个初始化的 Flink 项目目录结构,并且再次基础上,我们做了二次定制。我们针对不同的运行环境,新增了一些配置文件,以方便自己的项目部署运行。最终,整个项目目录结果如下:

在这里插入图片描述

但,如果每次都需要自己手动创建这些目录结构,这将是一件很低效的事情,因此,我希望把这个项目的结构也保存为一份自定义的 archetype 模板,再之后的 Flink 项目开发时,都基于这份定制化的模板生成新的项目目录结构,这会使后续的开发变得事半功倍。

模板制作

请确保你的本地环境安装了 maven 包管理系统,我们需要利用 mvn cli命令行工具把该项目打包为一个项目模板。

1.调整 pom.xml

<version>1.9-RELEASE</version>

首先,我们需要修改下 pom.xml 文件的版本号: <version>,为了方便开发人员从版本号得出当前项目使用的 flink 版本,因此项目版本号这里和项目使用的 flink 版本保持一致: 1.9,并且调整版本的后缀为 RELEASE ,这是 maven 官方约定,代表这是一个稳定的发布版本。

2. 编译项目

接下来我们需要编译该项目。

# 进入项目目录
cd ~/IdeaProjects/FlinkDemo

# 运行制作 archetype 命令,基于当前项目
mvn archetype:create-from-project

当执行完该命令后,我们再进入项目的 target 编译目录,制作 jar 包并安装到本地的 maven 仓库:~/.m2/repository/

# 安装到本地 mvn 仓库文件里
cd target/generated-sources/archetype

# 安装
mvn install

# 生成 archetype-catalog 骨架信息文件
mvn archetype:crawl

不出意外,你会在 .m2/repository 找到如下文件: archetype-catalog.xml ,内容里会有该项目的配置字段信息:

<archetype>
      <groupId>co.yuankan</groupId>
      <artifactId>FlinkDemo-archetype</artifactId>
      <version>1.9-RELEASE</version>
      <description>FlinkDemo</description>
</archetype>

3. 如何使用

至此,我们已经把自定义的项目做成了一个项目模板,并且安装到了本地的 mvn 仓库中,下面我们就基于该模板来创建一个新的项目 FlinkFirstDemo

# 生成项目,使用本地项目索引
mvn archetype:generate -DarchetypeCatalog=local

当我们执行如上命令时,并且配置 archetypeCatalog 参数为 localmvn 会尝试从本地 archetype 查找项目模板文件,接下来我们只需要, 命令提示信息完成项目的初始化参数设定即可,参考下图:

在这里插入图片描述

不过,有一点遗憾的是,自定义的本地项目模板无法在 idea 以上一节可视化的方式使用该模板,如果想使用也不是绝对不可行,我们可以把该项目发布到 mvn 中央仓库中,或者发布到自己的公司私有仓库中,后续也是可以使用可视化方式来创建项目的。

项目模板 archetype 制作完毕,感谢你的阅读。

作者:猿谋人 博客:https://yuankan.co