Mark Murphy 在他的博客上做了一个很好的案例,什么样的信息应该被保留在公共存储库之外。密钥材料,例如各种服务的 OAuth 密钥或 API 密钥,就是一个很好的例子。
有问题的应用程序将是一个移动 android 应用程序,因此有人对其进行反编译以获取密钥不在此问题的范围内。
如何配置公共 CI 实例(例如 cloudbees)上的构建作业,以使秘密不会在构建日志或编译目录中泄露?我的主要目的是演示具有基于 OAuth 的身份验证的应用程序的架构和构建过程,而无需在整个互联网上传播我的私钥。因此,需要一个公共代码存储库和一个公开可见的构建服务器。
目前,我在我的 java 代码中使用 maven 过滤和占位符来创建静态常量类,但这些类在目标目录中始终可见。目标的构建后清理仍然会留下一小段时间,其中生成的 java 文件对世界可见。