首页 > 解决方案 > 如何将 VSTS 变量传递到 MVN 项目中的属性文件中

问题描述

我必须传递数据库、用户名和密码才能从 VSTS 连接到数据库。我正在执行一个 Maven 项目。

我在 VSTS 中定义了变量。我想要一个像这样的属性文件

datasource.url="${database}"
datasource.username="${username}"
datasource.password="${password}"

有可能做到这一点吗?还是我应该从java代码中获取变量?

标签: javamavenazure-devops

解决方案


有可能做到这一点吗?还是我应该从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. 但实际上并不影响这些变量替换操作。您将看到文件已成功替换。


推荐阅读