C#教程
主页 > 软件编程 > C#教程 >

在idea中利用maven实现多环境配置自动打包的流程步骤介绍

2024-11-30 | 佚名 | 点击:

spring的多环境配置

spring提供了多环境配置文件的功能,只需要根据配置文件后缀即可加载对应的配置文件

1

2

3

4

spring:

  profiles:

    # 修改后缀即可加载对应的配置

    active: dev

还需要准备好对应的配置文件

在这里插入图片描述

利用maven实现多环境配置自动打包

但是这怎样写死的 spring.profiles.active 属性在使用idea给不同环境打包时每次都需要手动修改,可以使用maven提供的动能实现自动映射配置属性。

在pom.xml文件中主要添加以下配置

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

<!--配置多环境打包-->

<profiles>

    <!--开发环境-->

    <profile>

        <id>dev</id>

        <properties>

            <!--自定义的属性-->

            <spring.profiles.active>dev</spring.profiles.active>

        </properties>

        <activation>

            <!--如果不指定,则默认使用dev开发环境配置-->

            <activeByDefault>true</activeByDefault>

        </activation>

    </profile>

    <!-- 测试环境-->

    <profile>

        <id>test</id>

        <properties>

            <spring.profiles.active>test</spring.profiles.active>

        </properties>

    </profile>

    <!--生产环境-->

    <profile>

        <id>prod</id>

        <properties>

            <spring.profiles.active>pro</spring.profiles.active>

        </properties>

    </profile>

</profiles>

<build>

    <finalName>${project.name}</finalName>

    <resources>

        <resource>

            # mavan要对哪个目录解析 ${} 标签

            <directory>${project.basedir}/demo/src/main/resources</directory>

            # 是否过滤

            <filtering>true</filtering>

        </resource>

    </resources>

</build>

在添加了上述配置后,在pom.xml文件中右击 --> Maven --> 重新加载项目,就能看到右边多了一些配置

在这里插入图片描述

然后修改application.yml文件的配置

1

2

3

4

spring:

  profiles:

    # 修改后缀即可加载对应的配置

    active: ${spring.profiles.active}

选中想打包的环境

在这里插入图片描述

打包后查看实际打出来的包配置文件的属性是否真正加载了

在这里插入图片描述

在这里插入图片描述

可以看到正是所选的 pro 环境,这样就不用每次打包时都手动修改 spring.profiles.active 属性,只需要在打包时勾选一下maven对应的profiles属性即可

完整的 pom.xml 文件:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.itheima</groupId>

    <artifactId>demo</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <name>demo</name>

    <description>demo</description>

    <properties>

        <project.name>demo</project.name>

        <java.version>1.8</java.version>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <spring-boot.version>2.6.13</spring-boot.version>

    </properties>

    <dependencies>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-data-redis</artifactId>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-web</artifactId>

        </dependency>

        <dependency>

            <groupId>org.mybatis.spring.boot</groupId>

            <artifactId>mybatis-spring-boot-starter</artifactId>

            <version>2.2.2</version>

        </dependency>

 

        <dependency>

            <groupId>com.mysql</groupId>

            <artifactId>mysql-connector-j</artifactId>

            <scope>runtime</scope>

        </dependency>

        <dependency>

            <groupId>org.springframework.boot</groupId>

            <artifactId>spring-boot-starter-test</artifactId>

            <scope>test</scope>

        </dependency>

    </dependencies>

    <dependencyManagement>

        <dependencies>

            <dependency>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-dependencies</artifactId>

                <version>${spring-boot.version}</version>

                <type>pom</type>

                <scope>import</scope>

            </dependency>

        </dependencies>

    </dependencyManagement>

 

    <!--配置多环境打包-->

    <profiles>

        <!--开发环境-->

        <profile>

            <id>dev</id>

            <properties>

                <!--自定义的属性-->

                <spring.profiles.active>dev</spring.profiles.active>

            </properties>

            <activation>

                <!--如果不指定,则默认使用dev开发环境配置-->

                <activeByDefault>true</activeByDefault>

            </activation>

        </profile>

        <!-- 测试环境-->

        <profile>

            <id>test</id>

            <properties>

                <spring.profiles.active>test</spring.profiles.active>

            </properties>

        </profile>

        <!--生产环境-->

        <profile>

            <id>prod</id>

            <properties>

                <spring.profiles.active>pro</spring.profiles.active>

            </properties>

        </profile>

    </profiles>

 

    <build>

        <finalName>${project.name}</finalName>

        <resources>

            <resource>

                <directory>${project.basedir}/demo/src/main/resources</directory>

                <filtering>true</filtering>

            </resource>

        </resources>

        <plugins>

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-compiler-plugin</artifactId>

                <version>3.8.1</version>

                <configuration>

                    <source>1.8</source>

                    <target>1.8</target>

                    <encoding>UTF-8</encoding>

                </configuration>

            </plugin>

            <plugin>

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-maven-plugin</artifactId>

                <version>${spring-boot.version}</version>

                <configuration>

                    <mainClass>com.example.demo.DemoApplication</mainClass>

                    <skip>true</skip>

                </configuration>

                <executions>

                    <execution>

                        <id>repackage</id>

                        <goals>

                            <goal>repackage</goal>

                        </goals>

                    </execution>

                </executions>

            </plugin>

        </plugins>

    </build>

 

</project>

原文链接:
相关文章
最新更新