最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Maven3种打包方式中maven-assembly-plugin使用代码解析
时间:2020-07-22 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下Python常用数据分析模块原理解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
maven-jar-plugin,默认的打包插件,用来打普通的project JAR包;
maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包;
maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等。
我们日常使用的以maven-assembly-plugin为最多,因为大数据项目中往往有很多shell脚本、SQL脚本、.properties及.xml配置项等,采用assembly插件可以让输出的结构清晰而标准化。
要使用该插件,就在项目pom文件中加入以下内容。
org.apache.maven.plugins maven-assembly-plugin ${maven-assembly-plugin.version} make-assembly package single src/main/assembly/assembly.xml
assembly插件的打包方式是通过descriptor(描述符)来定义的。
Maven预先定义好的描述符有bin,src,project,jar-with-dependencies等。比较常用的是jar-with-dependencies,它是将所有外部依赖JAR都加入生成的JAR包中,比较傻瓜化。
但要真正达到自定义打包的效果,就需要自己写描述符文件,格式为XML。下面是我们的项目中常用的一种配置。
assembly tar.gz true src/main/bin *.sh bin 0755 src/main/conf conf src/main/sql *.sql sql target/classes/ *.properties *.xml *.txt conf . false runtime lib
id与formats
formats是assembly插件支持的打包文件格式,有zip、tar、tar.gz、tar.bz2、jar、war。可以同时定义多个format。
id则是添加到打包文件名的标识符,用来做后缀。
也就是说,如果按上面的配置,生成的文件就是artifactId−{artifactId}-artifactId−{version}-assembly.tar.gz。
fileSets/fileSet
用来设置一组文件在打包时的属性。
directory:源目录的路径。
includes/excludes:设定包含或排除哪些文件,支持通配符。
fileMode:指定该目录下的文件属性,采用Unix八进制描述法,默认值是0644。
outputDirectory:生成目录的路径。
files/file
与fileSets大致相同,不过是指定单个文件,并且还可以通过destName属性来设置与源文件不同的名称。
dependencySets/dependencySet
用来设置工程依赖文件在打包时的属性。也与fileSets大致相同,不过还有两个特殊的配置:
unpack:布尔值,false表示将依赖以原来的JAR形式打包,true则表示将依赖解成*.class文件的目录结构打包。
scope:表示符合哪个作用范围的依赖会被打包进去。compile与provided都不用管,一般是写runtime。
按照以上配置打包好后,将.tar.gz文件上传到服务器,解压之后就会得到bin、conf、pb等规范化的目录结构,十分方便。
相关文章
- maven环境变量配置代码示例 08-11
- Maven插件docker-maven-plugin使用代码示例 06-21
- maven之packaging标签使用代码示例 12-03
- Maven分模块开发执行指令失败问题解决方法 09-27
- maven使用assembly进行打包方法代码示例 09-04
- maven如何配置多个仓库 maven配置多个仓库方法 08-28