zoukankan      html  css  js  c++  java
  • springboot之assembly的文件配置

      一、在使用springboot框架的时候,存在一个问题。就是我们配置yaml文件,需要单独提出来做参数修改。当然这个是可以通过spring.profiles.active的方式来配置dev,prod等环境的激活。但是我们如果存在环境不确定,或者需要启动脚本,启动项目的时候,这样通过jar的方式后续会处理很多工作。所以前期的集成工作还是很有必要的。

      二、这里有一个简单的例子,用于参数配置方式

      1)目录结构

      

      2)需要的依赖包(pom.xml)

      <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.RELEASE</version>
        </parent>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>

      3)maven的构建过程

       <build>
            <finalName>assembly</finalName>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <configuration>
                        <includeSystemScope>true</includeSystemScope>
                    </configuration>
                </plugin>
                <plugin>
                    <!--主要使用的是maven提供的assembly插件完成-->
                    <artifactId>maven-assembly-plugin</artifactId>
                    <executions>
                        <execution>
                            <configuration>
                                <appendAssemblyId>false</appendAssemblyId>
                                <!--具体的配置文件-->
                                <descriptors>${project.basedir}/src/main/resources/assembly/package.xml</descriptors>
                            </configuration>
                            <id>make-assembly</id>
                            <!--绑定到maven操作类型上-->
                            <phase>package</phase>
                            <!--运行一次-->
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>

      4)集成过程(package.xml)

    <?xml version='1.0' encoding='UTF-8'?>
    <assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
        <!--打包名称,唯一标识-->
        <id>${project.build.finalName}</id>
        <!--打包格式,可以手动修改-->
        <formats>
            <format>tar.gz</format>
        </formats>
        <!--文件设置-->
        <fileSets>
            <fileSet>
                <!--目标目录,会处理目录里面的所有文件-->
                <directory>${project.basedir}/src/main/resources/config</directory>
                <!--相对于打包后的目录-->
                <outputDirectory>config</outputDirectory>
                <!--文件过滤-->
                <includes>
                    <include>*.*</include>
                </includes>
            </fileSet>
            <fileSet>
                <directory>${project.basedir}/src/main/resources/script</directory>
                <outputDirectory>/</outputDirectory>
                <includes>
                    <include>*.*</include>
                </includes>
                <!--文件权限-->
                <fileMode>0755</fileMode>
                <!--如果是脚本,一定要改为unix.如果是在windows上面编码,会出现dos编写问题-->
                <lineEnding>unix</lineEnding>
            </fileSet>
        </fileSets>
        <files>
            <!--包含打包后的jar文件,可以不加入<outputDirectory/>,默认打包的目录-->
            <file>
                <source>${project.build.directory}/${project.build.finalName}.jar</source>
            </file>
            <!--这种方式也可以进行文件处理,但是针对单文件-->
           <!-- <file>
                <source>${project.basedir}/src/main/resources/script/start.sh</source>
                <fileMode>0755</fileMode>
                <lineEnding>unix</lineEnding>
            </file>-->
        </files>
    </assembly>

      备注:具体的参数的意义可以参考官网:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

      5)通过maven的package打包

      

      

      

      三、源码:https://github.com/lilin409546297/springboot-assembly

  • 相关阅读:
    MySQL时间函数
    Linux安装php运行环境
    linux 防火墙配置
    CENTOS启动后网卡启动不了
    价值
    浏览器STATUS_INVALID_IMAGE_HASH报错解决方法
    wordpress更改域名最简单的方法
    Connection to 天mysql failed. [08001] Could not create connection to database server. Attempted ,报错处理方法
    centos实现三个节点高可用
    安装nginx1.16.1版本
  • 原文地址:https://www.cnblogs.com/ll409546297/p/10551245.html
Copyright © 2011-2022 走看看