通过设置 VM 参数激活 Maven 配置文件

Activate a Maven profile by setting VM arguments

我目前正在 Spring 使用 STS 引导编写应用程序。

现在我有不同的依赖项,我想在以下情况下过滤它们:

  1. 运行将应用程序本地安装在 STS 中作为 spring 启动 申请。

  2. 构建用于在服务器上部署的工件

我在 pom.xml 中将依赖项与配置文件分开,如下所示:

<profiles>
  <profile>
    <id>local</id>
    <activation>
      <activateByDefault>false</activateByDefault>
    </activation>
    <dependencies ...
  </profile>
  
  <profile>
    <id>server</id>
    <activation>
      <activateByDefault>true</activateByDefault>
    </activation>
    <dependencies ...
 </profile>

我的问题是,当我启动本地 spring 启动应用程序时,如何激活 运行 配置中的本地配置文件作为 vm 参数? 由于其他配置文件中的 activateByDefault true 设置,它无法启动应用程序,因为本地启动的某些依赖项被排除在外。

编辑: 我想更改应用程序启动配置中的配置文件。没有 Maven 构建,所以我不能使用 -P 标志。

正在添加

<activation>
  <property>
    <name>act</name>
    <value>local</value>
  </property>
</activation>

并从 vm 参数开始 -Dact=local 不起作用。

run configuration

您不能在 运行 时间内激活不同的构建配置文件(如 pom.xml 中所述)。当您 运行 您的应用程序时为时已晚,因为它已经在 运行 之前构建。

换句话说,您可以使用 Maven 配置文件来创建不同的构建。

您可以使用 Spring 配置文件更改应用程序的 运行 时间行为(如 @pvpkiran 所建议)。