首页 > 其他分享 >dremio distribution 模块简单说明

dremio distribution 模块简单说明

时间:2023-01-17 20:11:42浏览次数:57  
标签:dremio assembly 模块 plugin maven https distribution

以下简单说明下dremio distribution,distribution 核心是进行项目的发布,这种模式经常在apache 类似项目中看到

参考项目结构

 

 

简单说明

  • jdbc-driver
    还是是对于jdbc 驱动的处理,实际上在dremio 的client/jdbc 中已经包含了jdbc 驱动了,但是为了方便使用(官方使用了shade 方式进行了处理,属于一种特别常见的玩法),同时官方为了简化pom 信息,使用了flatten-maven-plugin 插件(后边我会简单介绍下)具体的可以参考官方源码的配置
  • resources
    主要是dremio 实际运行需要的一些配置,同时还包含了官方自己包装的cli,rpm 包的一些配置信息
  • docker
    是官方docker 镜像构建的,实际上此文件,似乎自动dremio 22 之后官方就不维护了,但是可以参考学习
  • server
    此模块也是实际dremio 基于了maven-dependency-plugin以及maven-assembly-plugin 进行实际的打包处理,因为同时需要构建rpm 包
    也引用了rpm-maven-plugin ,如果了解dremio的玩法的话,同时会有一个特殊处理,就是对于社区一些插件同时包含了一个oss 的profile
    因为resource 实际上打包需要的都在resource 中,官方在打包的时候引用了resource 模块,参考使用
 
<plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>distro-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptorRefs>
                <descriptorRef>server-tarball</descriptorRef>  //引用server-tarball< ,但是server-tarball< 引用了不少其他配置,通过include 包含的(具体在resource 模块中)
              </descriptorRefs>
              <appendAssemblyId>false</appendAssemblyId>
              <finalName>${dremio.distribution.name}-${project.version}</finalName>
              <tarLongFileMode>gnu</tarLongFileMode>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>com.dremio.distribution</groupId>
            <artifactId>dremio-distribution-resources</artifactId>
            <version>${project.version}</version>
          </dependency>
        </dependencies>
</plugin>

说明

以上是对于dremio 软件包打包的一个简单说明,都是一般较大项目的标准打包玩法,通过dremio 的打包实际上我们也可以学到不少东西,实际的处理可以阅读源码

参考资料

https://github.com/dremio/dremio-oss
https://github.com/mojohaus/flatten-maven-plugin
https://www.mojohaus.org/flatten-maven-plugin/
https://maven.apache.org/plugins/maven-assembly-plugin/
https://github.com/apache/maven-assembly-plugin
https://www.mojohaus.org/rpm-maven-plugin/
https://github.com/mojohaus/rpm-maven-plugin

标签:dremio,assembly,模块,plugin,maven,https,distribution
From: https://www.cnblogs.com/rongfengliang/p/17058617.html

相关文章

  • dremio dac 模块简单说明一
    dremiodac模块在官方的定义中是dremio分析中心的意思,代码上包含了,backend,common,daemon,ui模块的功能backenddremio的server部分,在构建打包之后会包含ui部分的......
  • os模块的使用方法详解
    os模块os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;即os模块提供了非常丰富的方法用来处理文件和目录。使用的时候需要导入该模块:importos常用方法如......
  • 振弦采集模块配置工具VMTool通用串口调试模块
    振弦采集模块配置工具VMTool通用串口调试模块VMTool扩展功能双击主界面右侧扩展工具条可实现扩展功能区的显示与隐藏切换。扩展功能包括串口调试、MODBUS、实时曲线及数......
  • configparse模块
    configparse模块转发:https://www.cnblogs.com/zhou2019/p/10599953.html一、ConfigParser简介ConfigParser是用来读取配置文件的包。配置文件的格式如下:中括号“[]......
  • 21.Selenium【EC模块】expected_conditions模块介绍
    一、前言expected_conditions是selenium的一个模块(简称EC),其中包含一系列可用于判断的条件。二、学习目标1.了解EC判定方法三、知识点1.【判定方法】判定方法#1.判......
  • Python之configparser模块详解和使用
    (目录)1configparser安装pip3installconfigparser2configparser简介用来读取配置文件的python包;一般做自动化测试的时候,会使用到这个模块,用来封装一些常量。比如......
  • PWM生成模块原理
    所用器材EP4CE6E22C8N板子,下载器。PWM方波生成原理根据输入时钟信号,设置PWM方波的周期(即计数多少个时钟信号周期为一个PWM方波周期),然后设置占空比时长(修改在该PWM信号内......
  • Spring 模块
    Spring框架包含许多模块,例如Core,bean,Context,ExpressionLanguage,AOP,Aspects,Instrumentation,JDBC,ORM,OXM,JMS,Transaction,Web,Servlet,Struts等。这些模块如下图所示,它们分为Tes......
  • IDEA多模块maven项目子模块无法引用父模块依赖
    IDEA多模块maven项目子模块无法引用父模块依赖​​第一节问题​​​​第二节解决方案​​第一节问题当在IDEA创建一个maven项目后,并在该项目下新建一个moudle后,使得前一......
  • 自适应降噪拾音器模块解决方案
    需求分析 随着数字化进程的不断推进,高清拾音采集的需求越来越强烈了。鉴于此,团队根据市场的变化,及时推出了一款标准化的模块,方便系统集成厂商集成和运用,从而达到节省开......