我负责许多Java应用程序服务器,这些服务器托管来自不同团队的不同开发人员的应用程序。
一个常见的问题是发送的某些应用程序没有按预期工作,结果发现该应用程序是在其他平台上开发的,即winXp或7上的openJDK,然后部署到运行Oracle JDK的Linux,或者反之亦然。
能够预先执行某些事情会很好,但实际上这是不可能的。
因此,是否有任何技术可以在部署时检测 我的意思是,没有源代码,通过扫描类文件?
如果不可能,我可以使用什么工具发送给开发人员,以便他们可以从源代码中识别出他们所依赖的不兼容的东西?
答案 0 :(得分:3)
无法以完全自动化的方式检测所有此类问题。例如,检测硬编码路径名非常困难,这可能是跨平台部署的最大问题。
我的建议是在部署时通过更自动化的测试来弥补这一点。
例如,在类似的环境中,我曾经坚持使用部署测试套件:通常作为安全网页实现,我可以导航到管理员,该管理员将运行一套测试部署应用程序并显示所有结果。
如果有任何失败,则立即回滚。
有些测试与开发中使用的测试相同,但有些测试是不同的(例如,检查正在部署的环境的预期配置)
显然,这意味着您必须将至少一些测试代码捆绑到生产应用程序中,但我认为这非常值得。作为管理员,如果您刚刚在登台环境中看到一个充满绿色标记的大屏幕,那么您将更有信心将版本推向生产。