Maven资源过滤
发布时间:2023-05-23 13:25:58 所属栏目:教程 来源:
导读:我们使用 Maven 资源过滤的目的和使用 Profile 的目的很大程度上是类似的,就是为了增强项目构建的可移植性。之前我们在 Profile 的章节中,讲到了在构建项目的时候,激活对应的 Profile 来使用对应的配置,当时我们
我们使用 Maven 资源过滤的目的和使用 Profile 的目的很大程度上是类似的,就是为了增强项目构建的可移植性。之前我们在 Profile 的章节中,讲到了在构建项目的时候,激活对应的 Profile 来使用对应的配置,当时我们把配置都放在了配置文件中,因此,如果有多套环境的话,那么配置文件就相应的需要多套。 首先在 src\main\resources目录下添加application.yml文件,用作配置文件。文件中的内容如下: spring: datasource: driver-class-name: ${database.driverClass} username: ${database.username} password: ${database.password} url: ${database.url} type: com.alibaba.druid.pool.DruidDataSource 这里,可以看到,我们使用了${}的方式来引用属性,这个属性可以定义在pom.xml文件中。 接下来,我们就在pom.xml 文件中配置对应的属性。 <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> <profiles> <profile> <id>dev</id> <properties> <database.driverClass>com.MysqL.cj.jdbc.Driver</database.driverClass> <database.url>jdbc:MysqL://localhost:3306/dev</database.url> <database.username>userNameDev</database.username> <database.password>passwordDev</database.password> </properties> </profile> <profile> <id>test</id> <properties> <database.driverClass>com.MysqL.cj.jdbc.Driver</database.driverClass> <database.url>jdbc:MysqL://localhost:3307/test</database.url> <database.username>userNameTest</database.username> <database.password>passwordTest</database.password> </properties> </profile> </profiles> 通常情况下,资源过滤是关闭的,如果需要开启,则需要我们手动设置 <filtering>true</filtering>。默认关闭也是为了防止在构建的过程中发生一些不必要的过滤情况。 这里,我们分别配置了开发环境的数据库信息和测试环境的数据库信息(其实也是使用的 Profile 的方式)。其中 properties 节点配置了我们自定义的属性,其与我们刚刚在application.yml文件中配置的占位符是一样的。 接下来,我们进行项目构建可以指定对应的 Profile,执行 Maven 命令mvn clean package -Pdev。构建完成后,我们可以查看target\classes目录下的构建结果,会发现配置文件中的确是用的开发环境的 Profile,目的达成。 spring: datasource: driver-class-name: com.MysqL.cj.jdbc.Driver username: userNameDev password: passwordDev url: jdbc:MysqL://localhost:/dev type: com.alibaba.druid.pool.DruidDataSource 以上的配置,还可以进行一下修改。由于我们平时更多的是在用开发环境的配置,因此,我们可以把开发环境的配置单独放置出来。 <build> ... </build> <properties> <database.driverClass>com.MysqL.cj.jdbc.Driver</database.driverClass> <database.url>jdbc:MysqL://localhost:3306/dev</database.url> <database.username>userNameDev</database.username> <database.password>passwordDev</database.password> </properties> <profiles> <profile> <id>test</id> <properties> <database.driverClass>com.MysqL.cj.jdbc.Driver</database.driverClass> <database.url>jdbc:MysqL://localhost:3307/test</database.url> <database.username>userNameTest</database.username> <database.password>passwordTest</database.password> </properties> </profile> </profiles> 这样修改之后,我们在进行开发环境构建的时候,不需要添加额外的参数,直接执行命令mvn clean package即可正常构建。而当我们需要构建其他环境程序包的时候,则在命令后面添加对应的参数。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |