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打的全量包

  • 相关阅读:
    Swift 网络请求数据与解析
    第三方-Swift2.0后Alamofire的使用方法
    java异常处理机制throws
    eclipse导入不到嵌套的项目
    java异常处理机制Exception
    在eclipse中查找指定文件
    mysql查询count
    【待解决】An internal error occurred during: "Launching baiduTest1". java.lang.NullPointerException
    TestNG升级
    eclipse安装TestNG插件
  • 原文地址:https://www.cnblogs.com/xwu36/p/13204357.html
Copyright © 2011-2022 走看看