4

我负责一些 Java 应用程序服务器,它们托管来自不同团队的不同开发人员的应用程序。

一个常见的问题是发送的某些应用程序无法按预期运行,结果证明该应用程序是在其他平台上开发的,即 winXp 或 7 上的 openJDK,然后部署到运行 Oracle JDK 的 Linux 上,反之亦然。

能够预先执行某些事情会很好,但这实际上是不可能的。

因此,是否有任何技术可以在部署时检测问题,我的意思是,在没有源代码的情况下,通过扫描类文件?

如果这不可能,我可以使用什么工具发送给开发人员,以便他们从源代码中识别出他们所依赖的不兼容之处?

4

1 回答 1

3

不可能以完全自动化的方式检测所有此类问题。例如,很难检测硬编码的路径名,这可能是跨平台部署的最大问题。

我的建议是在部署时通过更多的自动化测试来弥补这一点。

例如,在一个类似的环境中,我曾经坚持部署测试套件:通常实现为一个安全的网页,我可以作为管理员导航到它,它将在已部署的应用程序上运行一套测试并显示所有结果。

如果有任何失败,那就是立即回滚。

有些测试与开发中使用的测试相同,但有些不同(例如,检查正在部署的环境的预期配置)

显然,这意味着您必须将至少一些测试代码捆绑到您的生产应用程序中,但我认为这是非常值得的。作为管理员,如果您刚刚在暂存环境中看到一个充满绿色标记的大屏幕,那么您将更有信心将版本推送到生产环境。

于 2012-08-18T02:21:04.420 回答