再做springboot 动态多环境打包是,遇见取pom中参数的问题。

    @param@ 方式取值 

    提示:

  found character '@' that cannot start any token. (Do not use @ for indentation)

    项目父pom定义

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

虽然启动没有报错,但是红叉叉一直提示异常很不和谐,强迫症晚期,哎。


后来采用 '单引号'  

spring:
  profiles:
    active: '@profileActive@'

但是总是不太管用,经测试发现修改完profileActive后,先package一次才起作用。暂且在此记录下吧。


最后简单记录下多环境配置吧。


pom文件中

<profiles>
    	<profile>
    		<id>dev</id>
    		<properties>
    			<profileActive>dev</profileActive>
    		</properties>
    		<!-- 默认值 -->
    		<activation>
    			<activeByDefault>true</activeByDefault>
    		</activation>
    	</profile>
    	<profile>
    		<id>local</id>
    		<properties>
    			<profileActive>local</profileActive>
    		</properties>
    	</profile>
</profiles>
<build>
	<plugins>
		<plugin>
			.....
		</plugin>
	</plugins>
	<resources>
		<resource>
			<directory>src/main/resources</directory>
			<includes>
				<include>application-${profileActive}.yml</include>
				<include>application.yml</include>
				<include>**/*.xml</include>
			</includes>
			<filtering>true</filtering>
		</resource>
		<resource>
			<directory>src/main/java</directory>
			<includes>
				<include>**/*.xml</include>
			</includes>
		</resource>
	</resources>
</build>

application.yml

spring:
  profiles:
    active: '@profileActive@'



乐享:知识积累,快乐无限。