2011-12-14 201 views
2

我有一个JAR文件,其中包含Utility类,这些类在我的Web应用程序中使用。在单个JAR中包含依赖Jar

现在一些Utility类需要各自的库,例如commons-logging,db2java。

但是我打包的最终实用程序JAR不包含这些必需的库,我尝试了包括它们,但它们并没有被类拾取。

任何人都可以告诉我如何在我的实用程序JAR中包含这些依赖库,以便我的类可以正确地选择它们并执行。

+0

你是如何构建你的战争文件? – Paul

+0

[如何将模块瓶子合并到Maven2中的单个jar?](http://stackoverflow.com/questions/1895537/how-to-merge-module-jars-to-a-single-jar-in -maven2) – Kris

+0

@Kris,如果他正在构建一个web应用程序,那么这个问题不是你引用的问题的一个骗局。 – Paul

回答

5

只需将所有lib放在WEB-INF/lib文件夹中,而不是试图将它们捆绑到一个JAR文件中。将你的libs分解成自己的JAR文件更容易管理。

WEB-INF/lib/ 
....commons-lang-3.0.jar 
....db2java-1.0.jar 
....my-utilities-1.0.jar 

您还可以看到坛子里的版本(你要更新一个案例),而不必到处去挖掘他们

+0

实际上,jar文件中的jar文件不仅难于管理。这是*不可能*管理的Web容器。 –

+0

但是在这种情况下,我的实用程序类出现在我的实用程序JAR中。如果我将所需的库放在WEB-INF/lib文件夹中,我的工具类将如何访问它们? 我的意思是,他们会被拿起? – Vivek

+0

他说什么。不要把所有东西都捆绑在一起 - 它可能看起来像是一个节省时间,但最终它会让你付出代价... – Paul

2

如果你有兴趣的方式来存储所有的依赖性jar文件在一个jar里面,我会推荐使用fatjar插件。它完全符合你的要求。我已经多次使用它来快速部署Web applet和桌面应用程序。

+0

谢谢你的提示,我会记住这一点。 不过布拉德的建议对我来说是 – Vivek

+0

不用担心,用什么适合你的需求:) – Jyro117