java - 如何将 VSTS 变量传递到 MVN 项目中的属性文件中
问题描述
我必须传递数据库、用户名和密码才能从 VSTS 连接到数据库。我正在执行一个 Maven 项目。
我在 VSTS 中定义了变量。我想要一个像这样的属性文件
datasource.url="${database}"
datasource.username="${username}"
datasource.password="${password}"
有可能做到这一点吗?还是我应该从java代码中获取变量?
解决方案
有可能做到这一点吗?还是我应该从java代码中获取变量?
当然可以。而且你不需要做其他复杂的操作,只需使用一个名为Replace Tokens task的任务。
它不仅在.config
文件中起作用,而且在 .properties 文件中也非常有效。
作为您的示例,只需更改变量的定义,以便可以正确访问它:
datasource.url="#{database}#"
datasource.username="#{username}#"
datasource.password="#{password}#"
文件中变量的格式.properties
为#{VariableName}#
.
然后,将任务 Replace Tokens 任务添加到您的管道中。在变量选项卡上添加值:
对于任务配置,只需要指定Target files的值:
构建完成后,定位到本地文件。这是我的测试结果,可以看到替换成功:
注意:当您使用此任务构建时,它会报告一些错误消息,例如:##[error]EISDIR: illegal operation on a directory, read
. 但实际上并不影响这些变量替换操作。您将看到文件已成功替换。
推荐阅读
- reactjs - reactjs - 在组合组件时添加更多状态
- android - 在 API 28 上使用预期 (hasComponent(...)) 的 Espresso 测试失败
- javascript - e.which 仅使用大写字母
- javascript - 使用 D3.js 创建树形图时遇到问题(无法加载 Fetch API)
- webview - Nativescript 5.0 - 显示从 Android 上的 WebView 组件内的本地路径读取的 react/angular webapp
- mysql - 如何在表中自动递增?
- mysql - vb.net MySQL 和阿拉伯字符
- browser - 服务器响应头 Cache-Control 不可变 浏览器理解什么格式是正确的?
- python - 绑定 python-vlc 的问题
- python - 如何以家谱结构的形式绘制字典?