springboot个性化打包插件 —— maven-assembly-plugin

目录

maven中所有用来打包的插件

在这里主要讲一下maven-assembly-plugin这个插件

首先说一下为什么用到maven-assembly-plugin这个插件

配置文件的参数说明

最后注意


maven中用来打包的插件:

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

在这里主要讲一下maven-assembly-plugin这个插件

其实assembly 这个插件的主要作用就是:允许用户将项目输出与它的依赖项、模块、站点文档、脚本和其他文件一起组装成一个可分发的归档文件。也就是可以自己个性化、选择性、结构定制化的打包。

代码:

(这一段是在pom.xml的build标签下)

主要注意的是:指定打包文件src/main/assembly/assembly.xml,在该配置文件内指定打包操作

也打包操作的核心内容 很重要,建议在main方法下建一个文件夹。



         org.apache.maven.plugins
         maven-assembly-plugin
         
            

              ${basedir}/src/main/assembly/assembly.xml
                    
                    
                    test
                    
                    ${project.build.directory}
                    false
          






                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
         

这里提示一下,在build标签下可以再添加一段如下代码,可以时自定义jar包名字,不用再默认输出一大段jar包名。而在maven-assembly-plugin插件下的finalname标签则是打包解压后的目录名。

${project.artifactId}

下面说一下配置文件的参数说明

(也就是上述src/main/assembly/assembly.xml的具体配置)

代码:



    assembly

    
        tar.gz
    

    true

    

        

            unix

            0755

            ${project.basedir}/src/main/resources

            ${file.separator}

            
                application*.yml
                log*.xml
                *.sh
            
        

        
            ${project.build.directory}
            ${file.separator}
            
                *.jar
            
        
    
    


上面一些基础标签已经给定了注释,下面详细解释一下这两个标签

assembly插件具有lineEnding选项可用于控制给定的行结束文件。最终可以生成zip存档,与CRLF线和tar 。gz存档与LF线。

此时可能的值包括:

  1. "keep" - 保留所有行尾
  2. "unix" - 使用Unix风格行尾 (例如 "n")
  3. "lf" - 使用单个换行符行尾( (例如"n")
  4. "dos" - 使用DOS /Windows样式行尾 (例如 "rn")
  5. "windows" - 使用DOS /Windows样式行尾 (例如 "rn")
  6. "crlf" - 使用回车,换行行尾 (例如 "rn")
  •  

     与UNIX权限类似,设置包含的目录的目录模式。这是一个 OCTAL VALUE。格式:(用户)(组)(其他)[Format: (User)(Group)(Other) ] 其中每个组件是Read = 4,Write = 2和Execute = 1的总和。
        例如,值0755转换为用户读写,Group和其他只读。

        其默认值是0644.

(在这里说一下这个标签的实际作用,比如我在我的项目下配置一个启动、重启、停止的脚本,一起通过我们这个maven-assembly-plugin插件去一起打包部署到我们的云服务器上,但是这个 标签的默认值是0644也就是只具有读写权限,没有execute(执行)权限,所以当我们执行脚本是,系统会提示没有权限,还需要使用 chmod +x 命令去给予执行权限。但是此时如果直接在下设置0755就可以直接执行脚本)

最后注意在使用maven-assembly-plugin插件时还需在build标签下引入如下配置:

            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.1
                
                    -parameters
                    1.8
                    1.8
                    ${project.build.sourceEncoding}
                
            

你可能感兴趣的:(脚本,打包插件,maven,spring,boot,java)