Eclipse项目的JAR文件夹

6
我试图创建一个集中的文件夹(在我的Eclipse工作区中的某种“元项目”中),用于存放这个工作区中引用项目所需的常用JAR文件。它应该类似于Web项目中的WEB-INF/lib文件夹,但也适用于非Web项目,并自动扫描并添加此文件夹中的所有jar文件。
我尝试创建一个包含这些jar文件的用户库并将其引用到项目中,但我仍然需要手动添加每个新的jar文件到用户库中(而且不知道是否相对或绝对引用),Tomcat(WTP)似乎无法获取这些文件(Run As -> Run on Server)到它的类路径中(我不想复制这些jar文件并将它们放入WEB-INF/lib)。有什么建议吗?

你应该使用Tomcat处理WAR文件吧?这些文件总是使用像上面提到的WEB-INF/lib这样的路径。 - Powerlord
这并不能解决第一个问题,即为非 Web 项目具有 WEB-INF/lib 文件夹的相同功能。我直接从 Eclipse 部署和运行 Web 项目(因此我只想在运行配置中以某种方式将我的通用 JAR 文件夹添加到 Tomcat 类路径中,但似乎没有起作用)。 - Daff
5个回答

6

+1 for Ivy.

如果你更愿意在Eclipse中的一个单独项目中完成这个操作:

你需要将“common project”添加为其他项目的依赖项(Java Build Path->Projects,然后添加)。但是,你是否已经导出了“common project”的jar文件?(在common project中:Java Build Path->Order and Export,然后勾选所有的jar文件)。


在项目设置中导出jar包比用户库要好得多,特别是因为您可以将这些设置放在版本控制下,而用户库则不可能。+1 - Aaron Digulla
+1 我觉得你缺少的是导出 JAR 文件。 - Pablojim
谢谢,这比用户库看起来好多了,而且也能正常工作。不过还需要想办法让Tomcat与这些库一起运行,但我希望这会成功。我肯定会研究Maven和/或Ivy的,希望我能说服其他团队成员使用它们。 - Daff

3
我建议不要这样做,如果有很多项目具有重叠的依赖关系,那么这将变得非常麻烦。
如果项目X使用了commons-logging-1.0,但是有人创建了需要commons-logging-1.1的项目Z,你是否希望你的中央文件夹为每个可能的版本号都拥有相同的JAR副本?
使用类似Maven或Ivy的构建工具,它们会为您下载并处理依赖的JAR。maven-eclipse插件可以很好地为Eclipse生成.project/.classpath文件,自动将所有依赖的JAR放在构建路径上,而m2eclipse也很擅长处理Eclipse内的依赖关系。

1

我认为你应该认真看看Maven。你只需声明每个项目依赖的“构件”,Maven将负责从存储库获取JAR文件,将其添加到构建类路径中,并将其包含在WAR文件中。如果您想要批量构建,您不需要创建Ant的“build.xml”文件:只需从命令文件运行“mvn”即可。


1
我会考虑使用Ant的Ivy扩展来管理这些内容,如果您将来想要采用Maven,它也具有兼容性的好处。
将所有东西都扔到一个大堆里最终会给你带来问题,因为当你突然遇到两个项目时,其中一个使用创建THAT可用版本时的版本,而另一个使用bugfixed版本时,它们不是100%兼容的。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接