属性参数在多场合下应用
Chivas-Regal
为了简化编写、修改相同的版本号,诞生了属性
<!-- pom.xml -->
...
<properties>
<spring.version>5.2.10.RELEASE</spring.version>
</properties>
...
<dependencies>
<dependency>
...
<version>${spring.version}</version>
</dependency>
</dependencies>
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
如果这份属性想给自己以及继承自己的子工程下 所有的 resources 文件使用 这里以想把 jdbc.url 在 pom 中写好,然后给 resources 下的 jdbc.properties 使用
这个是工程目录,先在父工程的pom.xml中把属性设置好,然后用build设置resource生效路径
<!-- fa-project/pom.xml -->
...
<properties>
<jdbc.url>jdbc:mysql://localhost:3306/learn_info?useSSL=false</jdbc.url>
</properties>
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
然后子工程中继承一下
<!-- son-project/pom.xml -->
...
<parent>
<groupId>com.snopzyz</groupId>
<artifactId>fa-project</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
...
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
在 resources 的 jdbc.properties 中就写一个看看效果
# son-project/src/main/resources/jdbc.properties
jdbc.url = ${jdbc.url}
1
2
3
2
3
挨个打包后,在~/.m2/repository/com/snopzyz/son-project
的 jar 包中找到这个 jdbc.properties 看看数据
可以看到内容已经变动过了,完成
# 多环境配置
可能不同的环境需要不同的属性,比如:
- 开发环境用 127.0.0.1/learn_info 数据库
- 发布环境用 127.1.1.1/learn_info 数据库
- 测试环境用 127.2.2.2/learn_info 数据库
那么我们之前的属性就要将其给不同的开发环境做出区别
开发环境集合在 xml 中用profiles
标签,然后对一个开发环境做profile
命名用id
,属性就和我们上面的一样用properties
<!-- son-project/pom.xml -->
...
<profiles>
<!-- 开发环境 env_develop -->
<profile>
<id>env_develop</id>
<properties>
<jdbc.url>jdbc:mysql://127.0.0.1:3306/learn_info?useSSL=false</jdbc.url>
</properties>
<!-- 设置为默认开发环境 -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 发布环境 env_release -->
<profile>
<id>env_release</id>
<properties>
<jdbc.url>jdbc:mysql://127.1.1.1:3306/learn_info?useSSL=false</jdbc.url>
</properties>
</profile>
<!-- 测试环境 env_test -->
<profile>
<id>env_test</id>
<properties>
<jdbc.url>jdbc:mysql://127.2.2.2:3306/learn_info?useSSL=false</jdbc.url>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
...
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
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
在我们用终端发布的时候,调用命令
mvn install -P <环境名称>
1
比如
mvn install -P env_release
1
不加 -P
的时候就是用的我们这里默认的开发环境
在 IDEA 中调用命令可以采用:
- 点击这个按钮
- 在弹窗的右上角选我们想运行的模块
- 然后在输入框内执行想要调用的指令(可以发现指令是有历史记录的),点击回车即可运行