-Pprod命令和spring.active.profile = true有什么区别?

时间:2018-09-08 05:13:02

标签: maven spring-boot

当我使用命令行执行此操作时,

mvnw全新安装spring-boot:run -Dspring.profiles.active = prod -Dmaven.test.skip = true -Djava.util.Arrays.useLegacyMergeSort = true

项目正常运行

但是当我使用-Pprod命令尝试相同的操作时,会出现错误 (运行正常,但无法显示主页),

mvnw全新安装spring-boot:run -Pprod -Dmaven.test.skip = true -Djava.util.Arrays.useLegacyMergeSort = true

目前我有三个配置文件dev,test和prod。

我想知道,两者之间有什么区别?

请给我一些有关-Pprod命令的想法。

1 个答案:

答案 0 :(得分:0)

-Pprod是Maven调用的属性,并使用名称prod激活Maven概要文件,spring.profiles.active=prod激活Spring概要文件。它们并不相同,因此取决于您在何处配置了3个配置文件(我想您已将它们配置为Spring配置文件,因此必须使用Spring属性)。尽管可以以某种方式配置Maven概要文件,以便在该运行中也激活Spring概要文件(基本上,在Maven概要文件中,您将Spring概要文件属性设置为该值)。您可以找到有关此here的更多信息。简短示例:

<profiles>
  <profile>
    <id>prod</id>
    <properties>
      <spring.profiles.active>prod</spring.profiles.active>
    </properties>
  </profile>
</profiles>