12.跟我学SpringBoot-多环境打包

0.305字数 318阅读 2215

SpringBoot工程的核心是基础配置文件,这一块涉及的参数会非常多,而且开发、测试、生产各不一样,为此就需要设置多环境打包。这一节将讲解如何进行多环境配置文件打包,和SSH工程不太一样。

1.先建立一个工程,及对应配置文件

工程目录.png

/src/resources下面共有三个配置文件,其中application-test.yml和application-dev.yml为测试和开发的配置文件,根据实际打包进不同的文件,application.yml为打包环境选择文件,配置内容为:

spring:
 profiles:
   active: @environment@

为设置的环境变量

2.修改pom.xml

 <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <environment>dev</environment>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <environment>test</environment>
            </properties>
        </profile>
    </profiles>

这一段是设置当前工程的所有配置文件,并指定哪个是默认激活的。

设置编译配置

<build>
        <finalName>chapter11_profiles</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.5.2.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中 -->
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>${maven-jar-plugin.version}</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>com.critc.ProfilesStartApplication</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/lib</directory>
                <targetPath>BOOT-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
            <resource>
                <filtering>true</filtering>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>application-dev.yml</exclude>
                    <exclude>application-test.yml</exclude>
                </excludes>
            </resource>
            <resource>
                <filtering>true</filtering>
                <directory>src/main/resources</directory>
                <includes>
                    <include>application-${environment}.yml</include>
                    <include>application.yml</include>
                </includes>
            </resource>
        </resources>
    </build>

这一节设置所有编译参数。
几个主要确定的地方:
1、设置编译的jdk版本
2、设置spring-boot-maven-plugin,利用该插件进行打包
3、设置启动类
4、设置应用的资源文件及拷贝的jar包路径。

所有都设置完毕后执行如下命令:

执行打包.png

这样将会在工程的target目录下生成chapter11_profiles.jar

源码下载

本例子详细源码

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
  • 这一章主要针对项目中可以用到的一些实用功能来介绍Android Gradle,比如如何隐藏我们的证书文件,降低风险...
  • 本来打算好回到学校,好好看书,好好练琴。但是,静不下心,每次练琴,都是糊弄……好烦自己……六面的琴谱,两天,两面……