spring-boot - jhipster 无法将 spring 运行配置文件更改为 prod - 始终以 dev、swagger 开头 - Maven as Service
问题描述
我在做
./mvnw -Pprod clean verify
并以 dev 身份开始,并且没有 prod 配置文件。
我是否必须更改我的 pom 文件中的某些内容?
<id>prod</id>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>target/classes/static/</directory>
</fileset>
</filesets>
</configuration>
</plugin>
要在 debian 服务器中设置为服务,我这样做:
sudo chmod +x /var/lib/nms-api/n2.jar
sudo chown nmsapi:nmsapi /var/lib/nms-api/n1.jar
sudo ln -s /var/lib/nms-api/n2.jar /etc/init.d/nms2
sudo systemctl enable nms2
sudo service nms2 start
编辑
我正在使用 jhipster 框架https://www.jhipster.tech/production/他们说:
请注意,此 JAR 文件使用我们在构建时选择的配置文件。由于它是使用上一节中的 prod 文件构建的,因此它将使用 prod 配置文件运行。
说ps -aux
:
/usr/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -jar /var/lib/nms-api/n1.jar
java -Dspring.profiles.active=prod
当作为服务盯着看时,有没有办法在上面的行中设置?
编辑 2
我设置环境变量
sudo -i
root@nms-cp01-vm01:~# export SPRING_PROFILES_ACTIVE=prod
和
cat /etc/environment
$ sudo vi /etc/environment
$ echo $SPRING_PROFILES_ACTIVE
prod
$ sudo echo $SPRING_PROFILES_ACTIVE
prod
并且可以在 prod 配置文件中运行,如果
/usr/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -jar /var/lib/nms-api/n4test.jar
而不是在 prod 配置文件中,但如果以 root 身份运行,则在 dev 中
sudo /usr/bin/java -Dsun.misc.URLClassPath.disableJarChecking=true -jar /var/lib/nms-api/n4test.jar
解决方案
您混淆了 Maven 配置文件和 Spring Boot 配置文件。它们是两个完全不同的概念。Maven 配置文件是用于在构建期间打开特定步骤的标志,而 spring 配置文件是一个运行时标志,用于告诉 spring 要应用哪组配置。有关弹簧型材的更多信息,您可以在此处查看
Spring 配置文件可以通过系统属性、环境变量进行设置,也可以作为 maven 构建的一部分。前两个在 imo 中要灵活得多。
系统属性
java -Dspring.profiles.active=prod
环境变量
export SPRING_PROFILES_ACTIVE=prod
作为 Maven 构建配置文件的一部分
<profiles>
<profile>
<id>prod</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
</properties>
<!-- The rest of your profile here -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
</build>
</profile>
</profiles>
推荐阅读
- javascript - Angular 9 自定义样式/格式 HTML 文本区域
- sql - 如何在不知道 SQL 表有多少列的情况下向 SQL 表添加行
- c - malloc 是动态内存分配吗?
- python - 在后台删除 py.exe
- java - Java 并行 Streams 处理时间不匹配
- android - 如何从 Android 中的 AutocompleteSupportFragment 获取地点描述
- generics - 如何在 Rust 中没有特征对象的特征的多个实现者之间进行选择?
- java - 多个 ConstraintValidator 的实现及其优先级(通过请求端点启用/禁用)
- python - python argparse - 如何通过使用参数组合来防止
- php - 管理员如何取消设置用户的所有 Cookie