Jetty如何使用具有不同依赖关系的相同类处理类加载?

Kar*_*tti 8 java dependency-injection jstl jetty jetty-8

我想知道当多个依赖路径可以导致同一个类时jetty如何处理.

例如,

Jetty预装了JSTL-1.2,但我添加了一个依赖项来加载JSTL-1.2.4.在编译时,如果我在断点测试它在eclipse中下载源代码,它会在1.2.4版本中断.

我想知道哪个版本将被传递以生成JSP的字节代码,当有两个版本的类时,比如依赖一些基类JstlCoreTlv(一个预打包,即带有jetty的JSTL 1.2和一个从maven依赖传递的基类)1.2.4)

简而言之,我想知道码头是如何做到的.我想知道jetty如何优先考虑预先打包和后来添加的依赖项.即使版本比预先打包的版本旧,它是否会覆盖并引用添加的依赖项?

在这方面我从码头文件中得不到多少.非常感谢帮助

Esc*_*cay 4

  • 假设您不打算更改 Jetty 安装的 jstl 版本。
  • 假设您仅使用 jstl 版本 1.2.4 来编译您的代码,并且您没有将 jar 添加到您的 war WEB-INF/lib 中。

如果您使用 maven 针对 1.2.4 进行编译和打包,并在 Jetty 上部署打包的 war,则 Jetty 将使用 1.2(这是服务器类路径上的一个,而不是 1.2.4(因为它不适用于 Jetty)。这可能会导致到问题。

避免问题的最佳方法是在您的 Maven 项目依赖项中使用与您将部署的 Jetty 版本所使用的版本完全相同的版本。