Spring 从 POM 中的 Maven 配置文件启动
Spring Boot from Maven Profile in POM
我有一个 spring 具有开发和生产设置的启动应用程序。按照在搜索过程中找到的多条说明,我有一个 application.properties 文件,其中包含:
#-----------this will load the prod or dev according to the @activatedProperties@ value which is set from the pom when built
spring.profiles.active=@activatedProperties@
然后有两个文件:
- 申请-dev.properties
- application.prod.properties
然后我有一个以 spring-boot pom 作为父级的 pom
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
然后我将配置文件设置如下:
<profiles>
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<activatedProperties>prod</activatedProperties>
</properties>
</profile>
</profiles>
如果我然后按如下方式执行构建:
mvn -DskipTests -Pprod clean compile package
执行此操作后,application.properties 文件显示:
#-----------this will load the prod or dev according to the environment
spring.profiles.active=dev
请注意,它没有按要求使用 prod,而是使用 dev。事实上,无论我做什么,它都只是执行 activeByDefault 配置文件。有没有其他人看到过这个并对正在发生的事情有任何想法。正如您想象的那样,让部署说明说 'edit the POM file to move the activeByDefault property from the dev to prod profile'!
真的很烦人
已解决!
Eclipse 妨碍了;随着构建的发生,eclipse 正在加强默认配置文件;这发生在 :
版本:2019-09 R (4.13.0)
构建 ID:20190917-1200
如果您从命令行关闭 eclipse 和 运行,它就可以正常工作。
如果您使用 eclipse,然后取消选中“首选项”->“常规”->“工作区”下的“访问时刷新”,则它可以工作。线索来自另一个堆栈溢出问题:
感谢所有花时间回复的人。
我有一个 spring 具有开发和生产设置的启动应用程序。按照在搜索过程中找到的多条说明,我有一个 application.properties 文件,其中包含:
#-----------this will load the prod or dev according to the @activatedProperties@ value which is set from the pom when built
spring.profiles.active=@activatedProperties@
然后有两个文件:
- 申请-dev.properties
- application.prod.properties
然后我有一个以 spring-boot pom 作为父级的 pom
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
然后我将配置文件设置如下:
<profiles>
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<activatedProperties>prod</activatedProperties>
</properties>
</profile>
</profiles>
如果我然后按如下方式执行构建:
mvn -DskipTests -Pprod clean compile package
执行此操作后,application.properties 文件显示:
#-----------this will load the prod or dev according to the environment
spring.profiles.active=dev
请注意,它没有按要求使用 prod,而是使用 dev。事实上,无论我做什么,它都只是执行 activeByDefault 配置文件。有没有其他人看到过这个并对正在发生的事情有任何想法。正如您想象的那样,让部署说明说 'edit the POM file to move the activeByDefault property from the dev to prod profile'!
真的很烦人已解决!
Eclipse 妨碍了;随着构建的发生,eclipse 正在加强默认配置文件;这发生在 :
版本:2019-09 R (4.13.0) 构建 ID:20190917-1200
如果您从命令行关闭 eclipse 和 运行,它就可以正常工作。
如果您使用 eclipse,然后取消选中“首选项”->“常规”->“工作区”下的“访问时刷新”,则它可以工作。线索来自另一个堆栈溢出问题:
感谢所有花时间回复的人。