springboot 动态修改应用名称、jar包名称和激活不同的配置文件


目录:

  1. 技术背景
  2. 实现方式

1.技术背景

  项目的某个微服务实现了A、B、C三种相近的功能,所以代码在一个服务中,但是部署打包的时候想各自单独为service-a.jar,service-b.jar、service-c.jar。

服务注册到注册中心有各自的名称,每个功能的实现需要不同的配置,application-a.yml,application-b.yml,application-c.yml,需要激活不同的配置文件。日志写入

到不同的文件中,service-a.log、service-b.log、service-c.log。鉴于以上需要实现的技术为:

  1.动态的应用名称:根据环境变量实现不同的应用名称

  2.动态的配置文件:根据maven @profile.active@实现

  3.动态的jar包名称:结合上一步实现修改名称

2.实现方式

2.1动态的应用名称

spring:
  application:
    #根据环境变量修改应用名称 all为默认的变量
    name: aicloud-record-${PROFILE_ACTIVE:all}

  本地启动可以在启动类配置中修改

  

 

 

 在服务器环境中导出环境变量

export  PROFILE_ACTIVE:aaa

2.动态的配置文件

配置文件

spring:
  profiles:
    active: @profile.active@

 pom文件

<profiles>
        <profile>
            <id>all</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <profile.active>all</profile.active>
            </properties>
        </profile>
        <profile>
            <id>asr</id>
            <properties>
                <profile.active>asr</profile.active>
            </properties>
        </profile>
 </profiles>

本地启动时,maven选中选项

 

 服务器上

mvn clean install -Pall 。。。

3.动态的jar包名称

这一步是在上一步的基础上稍作修改就好

 <build>
        <!--# 根据profile修改jar包名称 ${profile.active}-->
        <finalName>aicloud-record-biz-${profile.active}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM