铁路项目建设 网站,广州花都网站开发,怎样修改wordpress密码,卖酒网站排名文章目录指定配置文件所在的目录使用 excludes 元素可以排除指定的配置文件使用 includes 元素可以指定要处理的文件处理测试资源过滤器配置resources 插件#xff0c;负责将配置文件复制到编译目录中。Maven Java Web 项目默认的编译目录
target/classes。两种配置文件 src/…
文章目录指定配置文件所在的目录使用 excludes 元素可以排除指定的配置文件使用 includes 元素可以指定要处理的文件处理测试资源过滤器配置resources 插件负责将配置文件复制到编译目录中。Maven Java Web 项目默认的编译目录
target/classes。两种配置文件 src/main/resources、src/test/resourcesMaven 默认只关注 src/main/resources 目录下的配置文件其他目录下的配置文件会被忽略。 指定配置文件所在的目录
如果有配置文件不在 resources 目录下这个时候就需要指定配置文件所在的目录
build!--指定属性文件里面含有键值对--filters filter${user.home}/antx.properties/filter /filters resourcesresource!--指定配置文件所在的目录--directorysrc/main/java/directory!--启用上面的过滤文件--filteringtrue/filtering /resource/resources
/build使用 excludes 元素可以排除指定的配置文件
resourcesresourcedirectorysrc/main/java/directory!--排除所有的txt文件其他的文件都会被复制--excludesexclude**/*.txt/exclude/excludes/resource
/resources使用 includes 元素可以指定要处理的文件
resourcesresourcedirectorysrc/main/java/directory!--除了txt文件其他的文件都不会被复制--includesinclude**/*.txt/include/includes/resource
/resources处理测试资源
处理测试资源其实就是默认处理 src/test/resources 下的资源需要在 pom.xml 中配置如下 buildfiltersfiltersrc/main/resources/${fileName}.properties/filter/filtersresourcesresourcedirectorysrc/main/resources/directoryfilteringtrue/filtering/resource/resourcestestResourcestestResource!--指定测试资源的存放目录--directorysrc/test/resources/directory/testResource/testResources
/build打开命令终端切换到 pom.xml 文件所在的目录下执行下面的指令
[~/documents/IdeaProjects/demo02]$ mvn resources:testResources
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------- com.example:demo02 -------------------------
[INFO] Building demo02 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-cli) demo02 ---
[INFO] Using UTF-8 encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.893 s
[INFO] Finished at: 2022-01-26T20:43:2208:00
[INFO] ------------------------------------------------------------------------我们再看看 target 目录下有什么内容
[~/documents/IdeaProjects/demo02]$ ls target
test-classes如上查询结果可知执行 mvn resources:testResources 会产生一个 test-classes 目录src/test/resources 目录下的资源文件会复制到 test-classes 目录下。
过滤器配置
~/test.properties 文件中的内容
nameliaowenxiongsrc/main/java/test.txt 配置文件中的内容如下
您好 ${name}${属性名/变量名}表示获取对应属性/变量的值。
pom.xml 配置过滤文件资源中启用过滤器
buildfilters!-- 指定过滤器文件其实就是个属性文件里面含有键值对 --filter${user.home}/test.properties/filter/filtersresourcesresource!--指定配置文件所在的目录--directorysrc/main/java/directory!--启用上面的过滤文件--filteringtrue/filtering/resource/resources
/build执行下面的命令处理资源文件
[~/documents/IdeaProjects/demo02]$ mvn resources:resources
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------- com.example:demo02 -------------------------
[INFO] Building demo02 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-cli) demo02 ---
[INFO] Using UTF-8 encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.976 s
[INFO] Finished at: 2022-01-26T18:31:2908:00
[INFO] ------------------------------------------------------------------------执行上述的命令之后Maven 会将指定目录下的资源文件复制到编译输出目录target/classes下并且资源文件 src/main/java/test.txt 中的 ${name} 会替换成过滤文件中的对应属性的值过滤文件中含有属性 name其值为 liaowenxiong所以就将 ${name} 替换成 liaowenxiong因此进入 target/classes 目录下打开 test.txt 文件会看到以下的内容
您好 liaowenxiong举个典型的应用场景 开发环境和测试环境的数据库连接参数不同你可以创建两份文件数据库参数文件properties 文件然后再创建一份真正需要代码解析的数据库配置文件properties 文件或者 xml 文件。
开发环境下的数据库参数文件 db1.properties 内容如下
urljdbc:mysql://192.168.200.123:3306/dev
usernameroot
password123测试环境下的数据库参数文件 db2.properties 的内容如下
urljdbc:mysql://192.168.200.124:3306/test
usernameroot
password456数据库配置文件 db.properties 的内容如下
driverClassNamecom.mysql.jdbc.Driver
# 如果是数据库在本地且端口号是3306则可以简写成jdbc:mysql:///test
url${url}
userName${userName}
password${password}
# 连接池初始化时会生成5个连接对象
initialSize5
maxActive10
maxWait3000我把三份属性文件都放在 src/main/resources 目录下如下图所示 pom.xml 配置内容如下
buildfilters!--指定过滤文件文件名使用变量的值替换--filtersrc/main/resources/${fileName}.properties/filter/filtersresourcesresourcedirectorysrc/main/resources/directory!--启用过滤器--filteringtrue/filtering/resource/resources/build打开命令终端切换到 pom.xml 所在的目录下执行下面的命令
[~/documents/IdeaProjects/demo02]$ mvn resources:resources -DfileNamedb1
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------- com.example:demo02 -------------------------
[INFO] Building demo02 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-cli) demo02 ---
[INFO] Using UTF-8 encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.948 s
[INFO] Finished at: 2022-01-26T20:25:4908:00
[INFO] ------------------------------------------------------------------------在命令终端查看生成的数据库配置 db.properties 文件
[~/documents/IdeaProjects/demo02]$ cat target/classes/db.properties
driverClassNamecom.mysql.jdbc.Driver
# 如果是数据库在本地且端口号是3306则可以简写成jdbc:mysql:///test
urljdbc:mysql://192.168.200.123:3306/dev
userNameroot
password123
# 连接池初始化时会生成5个连接对象
initialSize5
maxActive10
maxWait3000上述可以看到属性 url、userName、password 的值全部替换成 db1.properties 文件中对应属性的值。
执行 mvn resources:resources时如果指定变量 fileNamedb2看看效果如何
[~/documents/IdeaProjects/demo02]$ mvn resources:resources -DfileNamedb2
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------- com.example:demo02 -------------------------
[INFO] Building demo02 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-cli) demo02 ---
[INFO] Using UTF-8 encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.950 s
[INFO] Finished at: 2022-01-26T20:31:0508:00
[INFO] ------------------------------------------------------------------------在命令终端查看生成的数据库配置 db.properties 文件
[~/documents/IdeaProjects/demo02]$ cat target/classes/db.properties
driverClassNamecom.mysql.jdbc.Driver
# 如果是数据库在本地且端口号是3306则可以简写成jdbc:mysql:///test
urljdbc:mysql://192.168.200.124:3306/test
userNameroot
password456
# 连接池初始化时会生成5个连接对象
initialSize5
maxActive10
maxWait3000 上述可以看到属性 url、userName、password 的值全部替换成 db2.properties 文件中对应属性的值。