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