IntelliJ Ultimate版:SpringBoot运行配置中如何设置Maven Profile(非Spring Profile)
我目前使用IntelliJ IDEA 2023.1.1(旗舰版),项目同时结合了Maven Profiles和Spring Profiles。项目包含dev和prod两个Maven profile,其中prod是默认配置,仅在dev profile下引入特定依赖,配置如下:
<profiles> <profile> <id>dev</id> <activation> <property> <name>dev</name> </property> <activeByDefault>false</activeByDefault> </activation> <properties> <spring.profiles.active>dev</spring.profiles.active> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>${springdoc-openapi.version}</version> </dependency> </dependencies> </profile> <profile> <id>prod</id> <activation> <property> <name>prod</name> </property> <activeByDefault>true</activeByDefault> </activation> <properties> <spring.profiles.active>prod</spring.profiles.active> </properties> </profile> </profiles>
我在IntelliJ的Spring Boot运行配置里找不到设置Maven Profile的选项,只能设置Spring Profile,而且运行配置窗口的“Modify Options”里也没有相关设置。我知道可以创建Maven运行配置执行mvn spring-boot:run -Pdev,但想了解有没有其他方法?
以下是几种可行的替代方法:
1. 配置项目默认激活的Maven Profile
打开IntelliJ右侧的Maven面板,展开你的项目节点,找到“Profiles”选项,勾选需要激活的dev profile。之后直接用Spring Boot运行配置启动项目即可——Maven会自动使用激活的profile加载对应依赖,同时spring.profiles.active属性也会被自动设置为对应值。
2. 在Spring Boot运行配置中添加参数触发Maven Profile激活
方式一:添加VM参数
在Spring Boot运行配置的“VM options”中填入:
-Ddev -Dspring.profiles.active=dev
你的dev Maven profile通过<property><name>dev</name></property>规则激活,-Ddev参数会触发Maven激活该profile;-Dspring.profiles.active=dev则直接指定Spring Profile(也可省略,因为Maven profile已配置该属性)。
方式二:添加环境变量
在运行配置的“Environment variables”中添加:
dev=1;spring.profiles.active=dev
同样利用Maven profile的属性激活规则,通过设置环境变量dev触发dev profile的激活。
3. 设置全局Maven运行参数(谨慎使用)
打开IntelliJ设置(File → Settings),依次进入Build, Execution, Deployment → Build Tools → Maven → Runner,在“VM options”中添加-Pdev。这种方式会让所有Maven相关的构建、运行操作默认使用该profile,属于全局设置,会影响所有项目,需谨慎操作。
内容的提问来源于stack exchange,提问作者Dani

