添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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>