我正在尝试将Spring Boot配置文件与Maven配置文件集成,但由于某些原因,总是会选择默认配置文件。
MVN清洁测试-Dspring.profiles.active=产品(工作)
日志:
2019-07-01 17:02:15.013 INFO 21872 --- [ main] com.example.BrowserTest : The following profiles are active: prod
2019-07-01 17:02:15.405 INFO 21872 --- [ main] com.example.BrowserTest : Started BrowserTest in 0.743 seconds (JVM running for 1.757)
************************************************************************
************************************************************************
Site: https://www.yahoo.com
************************************************************************
************************************************************************
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.509 s - in com.example.BrowserTest
mvn干净测试-prod(不起作用,总是选择默认配置文件)
日志:
2019-07-01 17:03:20.136 INFO 17532 --- [ main] com.example.BrowserTest : The following profiles are active: @activatedProperties@
2019-07-01 17:03:20.535 INFO 17532 --- [ main] com.example.BrowserTest : Started BrowserTest in 0.727 seconds (JVM running for 1.706)
************************************************************************
************************************************************************
Site: http://www.default.com
************************************************************************
************************************************************************
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.456 s - in com.example.BrowserTest
pom。xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>profiles-junit-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>profiles-junit-demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<profiles>
<profile>dev</profile>
<profile>prod</profile>
</profiles>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<activatedProperties>prod</activatedProperties>
</properties>
</profile>
</profiles>
</project>
src/测试/资源/应用程序。属性
spring.profiles.active=@activatedProperties@
site=http://www.default.com
src/test/resources/application-dev.properties
site=https://www.google.com
src/test/资源/application-prod.properties
site=https://www.yahoo.com
浏览器测试。JAVA
public class BrowserTest extends ProfilesJunitDemoApplicationTests {
@Value("${site}")
private String site;
//mvn clean test
//mvn clean test -Dspring.profiles.active=dev
//mvn clean test -Dspring.profiles.active=prod
//mvn clean test -Pprod - NOT WORKING :(
@Test
public void homePage() {
System.out.println("************************************************************************");
System.out.println("************************************************************************");
System.out.println("Site: " + site);
System.out.println("************************************************************************");
System.out.println("************************************************************************");
assertNotNull(site);
}
}
在spring boot应用程序中,有几种方法可以设置概要文件(dev、uat、prod等)
例如:您可以将其添加到您的属性文件中:
spring.profiles.active=dev
以编程方式:
SpringApplication.setAdditionalProfiles("dev");
要指定哪些配置文件处于活动状态,请使用此行
@ActiveProfiles("dev")
在Unix环境中
export spring_profiles_active=dev
使用dev概要文件运行jar文件。
java -jar -Dspring.profiles.active=dev JARNAME.jar
这里是JARNAME。jar是指应用程序的jar名称
根据留档配置文件
是一个java.lang.String[]
所以相信它应该被定义为:
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<profiles>
dev,prod
</profiles>
</configuration>
</plugin>
</plugins>
没有测试过它,但我认为是这样的,你定义了你想要活动的所有配置文件(不是我认为你想要同时开发和生产活动)。
Spring boot插件配置文件
有两种方法:
>
将src/test/资源/application.properties
移动到src/main/Resources/application.properties
。
添加testResources
:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
如何创建支持多种环境的项目架构?在Spring的帮助下,每个环境将具有来自不同属性文件(dev-propertfile,test-propertfil,propertyfile)的不同数据源
我有一个使用以下命令构建的Spring项目 通过基于maven profile选择适当的属性文件,它工作得非常好 我们当前的应用程序现在更新为application.yml文件和属性文件 Yml文件提供了基于Spring配置文件创建属性的能力 这适用于使用 有没有办法读取maven配置文件(而不是Spring配置文件)并相应地设置属性?
我将创建一些编译概要文件,如下所示: null null
我有一个Maven项目https://github.com/paulvi/MavenMultiModule1 用根pom.xml 我希望能够分别构建子系统, 例如,和 两个配置文件都可见,但无法使用开关激活 和其他项目一起工作 这里缺少什么来激活配置文件或者构建子系统的更好方法? 我已经阅读了如何激活从属模块中的Maven配置文件?
我们的企业团队维护设置。xml文件,该文件定义了开发项目可以与Maven一起使用的各种概要文件,以构建其构件并将其安装到存储库中。我们期望Jenkins中的每个项目都会使用指定的所需概要文件定义一个-P参数。 这是我的问题:我需要使用的配置文件指定了一个通常对我的项目不可见的存储库(分阶段发布存储库),因此如果该配置文件处于活动状态,则无法依赖该存储库中的任何内容。我需要一种方法来激活我项目的文件
介绍 iSlider是一个表现出众,无任何插件依赖的手机平台javascript滑动组件。它能够处理任何元素,例如图片或者DOM元素。 特性 优秀的性能,更少的内存占用; 提供丰富的动画切换效果,自带的效果包括 default, rotate, depth, flow, flip, card, fade 等,并且可以进行无限的扩展; 提供丰富的回调触发器,并且添加回调函数极为方便,无论在初始化还是