zoukankan      html  css  js  c++  java
  • Springboot自定义打包

    学习记录1--Springboot的Maven自定义打包

    在以往的开发中,Springboot应用默认打成一个jar,虽然方便但是会有很多问题,比如不方便修改配置文件,修改一个处代码就要更新整包等等,而maven中也有这样的插件可以给我们提供帮助

    • 复制引用依赖插件
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
            <execution>
                <id>copy-dependencies</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <!-- 指定输出依赖的位置 -->
            <outputDirectory>lib</outputDirectory>
            <overWriteReleases>false</overWriteReleases>
            <overWriteSnapshots>false</overWriteSnapshots>
            <overWriteIfNewer>true</overWriteIfNewer>
        </configuration>
    </plugin>
    
    • 使用jar插件打成jar包
     <plugin>
      <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath>
                     <!-- 指定依赖加载路径 -->
                    <classpathPrefix>lib/</classpathPrefix>
                     <!-- 指定主类 -->
                    <mainClass>club.menglinking.wx.WxApplication</mainClass>
                </manifest>
            </archive>
            <excludes>
                <!-- 排除配置文件和静态文件 -->
                <exclude>**/*.properties</exclude>
                <exclude>**/*.yml</exclude>
                <exclude>static/**</exclude>
                <exclude>templates/**</exclude>
            </excludes>
        </configuration>
    </plugin>                    
    
    • 使用assembly自定义打包
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
            <descriptors>
                 <!-- 打包配置文件的路径 -->
                <descriptor>bin/package.xml</descriptor>
            </descriptors>
        </configuration>
        <executions>
            <execution>
                <!-- 绑定插件到生命周期 -->
                <id>make-assembly</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    
    • 打包示例配置文件
    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
        <!-- 保证唯一 -->
        <id>weChat</id>
        <!-- 打成的分发包格式,推荐windows和linux双平台包 -->
        <formats>
            <format>zip</format>
            <format>tar.gz</format>
        </formats>
    
        <includeBaseDirectory>true</includeBaseDirectory>
        <fileSets>
            <fileSet>
                <directory>bin</directory>
                <outputDirectory>/</outputDirectory>
                <includes>
                    <include>*.bat</include>
                    <include>*.sh</include>
                    <include>*.xml</include>
                </includes>
            </fileSet>
            <fileSet>
                <directory>target</directory>
                <outputDirectory>/</outputDirectory>
                <includes>
                    <include>*.jar</include>
                </includes>
            </fileSet>
            <fileSet>
                <directory>lib</directory>
                <outputDirectory>lib/</outputDirectory>
                <includes>
                    <include>*.jar</include>
                </includes>
            </fileSet>
            <fileSet>
                <directory>src/main/resources</directory>
                <outputDirectory>/config</outputDirectory>
                <includes>
                    <include>*.properties</include>
                </includes>
            </fileSet>
            <fileSet>
                <directory>src/main/resources/static</directory>
                <outputDirectory>/static</outputDirectory>
                <includes>
                    <include>**/*</include>
                </includes>
            </fileSet>
        </fileSets>
        <files>
            <file>
                <source>README.md</source>
                <outputDirectory>/</outputDirectory>
            </file>
        </files>
    </assembly>
    

    打包完成之后,配置文件,静态文件,依赖和代码分离,修改代码后只需要把打成的jar覆盖即可完成增量更新(在没有新引入依赖的情况下),生成的jar会远远小于springboot打的全量包

  • 相关阅读:
    [转帖]一名Delphi程序员的开发习惯(非技术问题)
    MsSQL通用数据库创建程序(源码+Demo+Exe)
    现有 Delphi 项目迁移到 Tiburon 中的注意事项[转]
    PHP的WEB服务编程工具NuSoap介绍[转]
    进程防杀Delphi版(DLL部分)
    PHP的WEB服务编程工具NuSoap介绍[转]
    现有 Delphi 项目迁移到 Tiburon 中的注意事项[转]
    用 PHP 读取和编写 XML DOM[转]
    进程防杀Delphi版(DLL部分)
    关系数据库设计
  • 原文地址:https://www.cnblogs.com/xwu36/p/13204357.html
Copyright © 2011-2022 走看看