2

我需要在我的项目中使用一些 3rd 方 jar。该项目是一个 Spring 项目,该 jar 也是使用 Spring。

有没有办法可以在我的项目中包含第 3 方 jar?我发现很难找到第三部分 jar 的每一个依赖项并注入它。

4

2 回答 2

4

应该不是问题。通常,应用程序上下文可以在同一个 JVM 中彼此独立地加载。但是,如果您从类路径中的资源文件加载 bean 定义(例如,使用ClasspathXmlApplicationContext),请确保文件的位置和名称不与第三方 JAR 冲突。例如,如果它们都位于类路径中不同 JAR 中的“/applicationContext.xml”,那么您将遇到问题。让你的独一无二。

于 2009-09-15T15:40:44.583 回答
2

我不清楚您所说的“包含”是什么意思。

如果 3rd 方 jar 在你的 war 项目中被定义为依赖,它在被war 插件打包时会自动捆绑到 war 的 WEB-INF/lib 文件夹中。jar 中的任何类都将位于类路径上,因此可以在 Spring 配置中引用。你有比这更具体的要求吗?

另请注意,如果 3rd-party jar 是正确定义的 Maven 项目,则它的依赖项将在其 pom.xml 中定义。那些传递依赖也被捆绑到战争中(除非你用非默认范围定义它们,在这种情况下它们可能不是)。

您在 Maven 中央存储库中找到的任何 jar 都应该使用它们的所有传递依赖项进行定义。如果您在解决它们时遇到问题,请更新您的答案,以便可以找到相关的 Maven 凭据。

根据您的评论更新。一旦 jar 位于 war 的类路径中,您可以通过将其导入到您的 war 的应用程序上下文中来引用它声明的任何 Spring 配置文件。您只需以以下形式指定导入:“jar:file://jarName!/path/to/config.xml”

于 2009-09-15T15:25:26.020 回答