当前位置: 首页 > 知识库问答 >
问题:

如何将Spring Boot概要文件与Maven概要文件集成?

简俊楚
2023-03-14

我正在尝试将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);
    }

}

共有3个答案

古棋
2023-03-14

在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名称

萧丁雨
2023-03-14

根据留档配置文件是一个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插件配置文件

东方淇
2023-03-14

有两种方法:

>

  • 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 等,并且可以进行无限的扩展; 提供丰富的回调触发器,并且添加回调函数极为方便,无论在初始化还是