我在这里阅读了一些关于 OutOfMemoryError: PermGen space 的帖子。这里的这个特别注意。处理“java.lang.OutOfMemoryError: PermGen space”错误
此外,同一篇文章还提到了其他网络参考
- http://frankkieviet.blogspot.ca/2006/10/classloader-leaks-dreaded-permgen-space.html http://frankkieviet.blogspot.ca/2006/10/how-to-fix-dreaded-permgen-space .html
据我了解,在某些情况下,ClassLoader 泄漏与在 App ClassLoader 中存在类的部署相关联,这些类是从 App ClassLoader 外部引用的。本文中的链接说明了一个示例,即自定义日志级别。
话虽如此,我的疑问是关于构建和依赖管理的最佳实践。我使用 Maven 和物料清单以及依赖分析来检查我是否没有生成超过我需要的包。到目前为止,一切都很好。但我知道有类加载器的优先级。在我的例子中,我使用了使用 UnifiedClassLoader 的 JBoss AS / WildFly。
在这种情况下,我是否应该考虑使用 Maven 和 BOM 构建的 WAR 文件可能具有与 Logger 示例相同的行为?是否仍然建议使用 BOM?