maven-assembly-plugin

一、maven打包工具

使用maven对项目进行打包,可用以下三种plugin

  • maveb-jar-plugin : maven默认打包插件,用来创建project jar
  • maven-shade-plugin : 用来打可执行包(executable jar)
  • maven-assembly-plugin : 支持定制化打包方式

下面简单介绍以下maven-assembly-plugin

二、使用方法

1、descriptorRefs

官方提供的定制化打包方式,包括bin,jar-with-dependencies,src,project。

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        
        <artifactId>maven-assembly-pluginartifactId>
        <version>3.0.0version>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependenciesdescriptorRef>
          descriptorRefs>
        configuration>
        [...]
project>

2、descriptors

指定打包文件src/main/assembly/assembly.xml,在该配置文件内指定打包操作。

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <artifactId>maven-assembly-pluginartifactId>
        <version>3.0.0version>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/assembly.xmldescriptor>
          descriptors>
        configuration>
        [...]
project>

三、配置文件参数解释说明

1、id

<id>releaseid>

id标识符,添加到生成文件名称的后缀符。如果指定id的话,目标文件名则是 a r t i f a c t I d − {artifactId}- artifactId{id}.tar.gz

2、formats

maven-assembly-plugin 支持的打包格式有zip、tar、tar.gz (or tgz)、tar.bz2 (or tbz2)、jar、dir、war,可以同时指定多个打包格式

<formats>
    <format>tar.gzformat>
    <format>dirformat>
formats>

3、fileSets

管理一组文件的存放位置,核心元素如下表所示:

元素 类型 作用
outputDirectory String 指定文件集合的输出目录,该目录是相对于根目录
includes/include* List 包含文件
excludes/exclude* List 排除文件
fileMode String 指定文件属性,使用八进制表达,分别为(User)(Group)(Other)所属属性,默认为 0644
<fileSets>
    <fileSet>
      <includes>
        <include>bin/**include>
      includes>
      <fileMode>0755fileMode>
    fileSet>

    <fileSet>
      <includes>
        <include>/conf/**include>
        <include>logsinclude>
      includes>
    fileSet>

  fileSets>

files

可以指定目的文件名到指定目录,其他和 fileSets 相同,核心元素如下表所示。

元素 类型 作用
source String 源文件,相对路径或绝对路径
outputDirectory String 输出目录
destName String 目标文件名
fileMode String 设置文件 UNIX 属性
<files>
    <file>
      <source>README.txtsource>
      <outputDirectory>/outputDirectory>
    file>
  files>

工程目录结构示例

maven-assembly-plugin_第1张图片

你可能感兴趣的:(java相关工具)