解决--spring.profiles.active=prod不生效问题

今天自己手写了一个springboot的项目,并没有通过IDE生成,在打完包上传到服务器,使用
–spring.profiles.active=prod 启动时,发现不生效,依然使用的dev来启动
在这里插入图片描述
最后各种排查,最终发现了,启动类没有传入参数 args
在这里插入图片描述
在这里插入图片描述
重新发包上传服务器,完美切换环境。

### 如何通过命令行运行 JAR 文件并设置 `spring.profiles.active` 为 `prod12` 在 Spring Boot 中,可以通过多种方式激活特定的环境配置。其中一种常见的方式是通过命令行参数来设置 `spring.profiles.active` 的值。以下是实现该功能的具体方法以及自动生成的相关代码。 #### 设置 `spring.profiles.active` 并运行 JAR 文件 当使用 Maven 打包生成可执行的 JAR 文件后,可以在启动时通过命令行传递 `-Dspring.profiles.active=profileName` 参数来激活指定的 profile[^2]。对于本例中的需求,可以按照如下方式进行操作: ```bash java -jar myapp.jar --spring.profiles.active=prod12 ``` 上述命令会加载名为 `prod12` 的 profile 配置。 --- #### 自动化代码生成:基于 Java 配置激活 Profiles 除了通过命令行设置外,还可以在应用程序内部通过编程的方式来设定默认的活跃 profiles。以下是一个示例代码片段,展示如何在程序初始化阶段手动设置 `spring.profiles.active` 值为 `prod12`[^3]。 ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class MyApp { public static void main(String[] args) { SpringApplication app = new SpringApplication(MyApp.class); // 设置默认的 properties 属性,覆盖 spring.profiles.active app.setDefaultProperties(Collections.singletonMap( "spring.profiles.active", "prod12" )); app.run(args); } } ``` 此代码会在应用启动时自动将 `spring.profiles.active` 设定为 `prod12`,即使未提供外部命令行参数也能够生效。 --- #### 引入本地 JAR 包并通过 Maven 构建项目 如果需要引入本地 JAR 包到当前 Spring Boot 项目中,则需先安装本地依赖至本地仓库后再正常引用它作为项目的依赖项[^1]。具体步骤如下所示: 1. 将目标本地 JAR 安装到本地 Maven 仓库: ```bash mvn install:install-file \ -Dfile=/path/to/your-local-jar.jar \ -DgroupId=com.example.groupid \ -DartifactId=local-artifact-id \ -Dversion=1.0-SNAPSHOT \ -Dpackaging=jar ``` 2. 修改 `pom.xml` 添加新加入的依赖定义: ```xml <dependency> <groupId>com.example.groupid</groupId> <artifactId>local-artifact-id</artifactId> <version>1.0-SNAPSHOT</version> </dependency> ``` 完成以上两步之后即可正常使用该本地库的功能,并最终打包整个工程成为独立运行形式下的单体 JAR 文件。 ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值