Maven 如何在CircleCI构建中使用安全文件?

Maven 如何在CircleCI构建中使用安全文件?,maven,maven-3,circleci,Maven,Maven 3,Circleci,我正在尝试在CircleCI上构建一个需要访问安全文件的项目。我不能使用环境变量,它必须是文件形式。在我的例子中,它特别是一个Mavensettings.xml文件,但是还有其他用例。我能做什么?这个问题实际上有很多解决方案: 文件作为环境变量 如果文件内容较短(例如,仅密码),则可以将整个文件存储为环境变量,然后在circle.yaml构建文件中添加一行,如下所示: echo $SECURE_FILE > mySecureFile 变量替换 如果文件内容很大,但只有一小部分是安全的,则

我正在尝试在CircleCI上构建一个需要访问安全文件的项目。我不能使用环境变量,它必须是文件形式。在我的例子中,它特别是一个Maven
settings.xml
文件,但是还有其他用例。我能做什么?

这个问题实际上有很多解决方案:

文件作为环境变量

如果文件内容较短(例如,仅密码),则可以将整个文件存储为环境变量,然后在circle.yaml构建文件中添加一行,如下所示:

echo $SECURE_FILE > mySecureFile
变量替换

如果文件内容很大,但只有一小部分是安全的,则可以将文件存储在代码存储库中,然后使用sed将固定字符串替换为环境变量,如下所示:

sed -e s/SECURE_PASSWORD/${SECURE_PASSWORD}/g mySecureFile.tmpl > mySecureFile
加密文件

您可以加密配置文件并将其签入源存储库,然后将解密密钥存储为环境变量。在构建过程中对其进行解密

Maven Settings.xml特例

对于Maven settings.xml文件的特殊情况,可以在settings.xml中使用环境变量,因此可以执行以下操作:

sed -e s/SECURE_PASSWORD/${SECURE_PASSWORD}/g mySecureFile.tmpl > mySecureFile
  • 将settings.xml存储在conf/settings.xml中
  • 用如下内容替换任何安全文本:
    ${env.MY\u secure\u text}
  • 在circle CI配置中设置
    MY\u SECURE\u TEXT
  • 在circle.yaml中,添加“-s” “conf/settings.xml”添加到Maven构建命令中