我正在尝试为此工作空间中的引用项目创建一个集中文件夹(在我的eclipse工作区中的某种“元项目”中),用于常用的JAR文件。它应该类似于Web项目的WEB-INF / lib文件夹,但也适用于非Web项目,并自动扫描并添加此文件夹中的所有jar文件。
我尝试使用这些jar文件创建一个用户库并在项目中引用它们但我仍然需要手动将每个新jar添加到用户库(并且不知道它是否被引用相对于absoulute)和Tomcat (WTP)似乎没有将这些文件(运行方式 - >运行在服务器上)放入其类路径中(我不想复制这些文件并将它们放入WEB-INF / lib中)。有什么想法吗?
答案 0 :(得分:6)
+1常春藤。
如果您宁愿在Eclipse中的独立项目中执行此操作:
您为其他项目添加了“公共项目”(Java Build Path-> Projects,然后添加)。但是,你有出口'共同项目'的罐子吗? (在常见项目中:Java Build Path-> Order and Export,然后检查所有jar)。
答案 1 :(得分:3)
我建议不要这样做,当你有很多具有重叠依赖关系的项目时,它会变得很痛苦。
如果Project X使用commons-logging-1.0但有人创建的Project Z真的需要commons-logging-1.1呢?您是否希望中央文件夹为每个可能的版本号提供相同JAR的副本?
使用像Maven或Ivy这样的构建工具,它将为您下载和处理相关的JAR。 maven-eclipse插件在为Eclipse生成.project
/ .classpath
文件方面做得非常好,它会自动将所有依赖JAR放在构建路径上,而m2eclipse也擅长处理Eclipse中的依赖项。
答案 2 :(得分:1)
我认为你应该认真看看Maven。您只需声明每个项目所依赖的“工件”,Maven将负责从存储库中获取JAR,将它们添加到构建类路径中,并将它们包含在WAR文件中。如果你想进行批量构建,你不需要创建一个Ant“build.xml”文件:只需从命令文件中运行“mvn”。
答案 3 :(得分:1)
我会考虑使用Ivy对Ant的扩展来管理这些东西,如果你想要这样做,那么它具有与maven兼容的好处。
将所有内容放在一大堆最终会给你带来问题,因为当你突然有两个项目时会遇到版本问题,其中一个使用创建THAT时可用的版本,另一个是bugfixed版本,以及那些不是100%兼容。
答案 4 :(得分:0)
我的同事实现了一个类路径容器,它在工作区内的给定目录中递归查找jar,看一下http://openscada.org/news/dx/31.05.2010154336JREJ4U.htm
可以在http://repo.openscada.org/p2/bob/R
找到更新网站该插件获得LGPL V3许可,您可以在http://pubsvn.inavare.net/openscada/modules/bob/trunk/下找到源代码