收到一个主 jar 文件,其中包含需要在类路径中的其他 jar 文件。在我的 Maven 项目中包含这个主 jar 的最佳方法是啥?

Posted

技术标签:

【中文标题】收到一个主 jar 文件,其中包含需要在类路径中的其他 jar 文件。在我的 Maven 项目中包含这个主 jar 的最佳方法是啥?【英文标题】:Received a main jar file with other jar files that need to be in the classpath. Whats the best way to include this main jar in my maven project?收到一个主 jar 文件,其中包含需要在类路径中的其他 jar 文件。在我的 Maven 项目中包含这个主 jar 的最佳方法是什么? 【发布时间】:2011-05-23 17:46:34 【问题描述】:

所以我从客户端收到了一个 java api,主要代码在 main.jar 中。但他给我的指令要求我在想使用 main.jar 时将这些其他 jar(a.jar、b.jar 等)添加到类路径中。这些其他支持的 jars 是诸如 Xerces、jakarta-oro 和其他一些公开可用的库之类的东西。问题是我不知道它们是什么版本,所以我不确定如果我只是将我的应用程序中的 pom.xml 文件更新为依赖于 main.jar 并且还依赖于这些其他 jars 是否会出现问题以及它们的最新版本。

在我的 Maven 应用程序中使用 main.jar 的最佳策略是什么?我正计划将 main.jar 添加到我们的内部 maven 存储库,但是当我不知道它们是什么版本时,我应该如何处理 xerces、jakarta-oro 和其他 jars?

谢谢

【问题讨论】:

【参考方案1】:

如果你幸运的话,a.jar、b.jar 等文件中的 /META-INF/MANIFEST.MF 包含一个条目“实施版本”或一些其他有用的信息,这些信息告诉你它们是什么版本。如果没有,您可以从项目网站下载最新版本并检查它们是否与您捆绑的依赖项具有相同的文件大小。 您可能还会想到将依赖项与 main.jar 捆绑在一个大 jar 中,但这可能会变得很有趣,当您将来某个时候在类路径中有两次依赖项时...

如果只是询问客户端这个依赖项有哪些版本号呢?

【讨论】:

【参考方案2】:

如果您没有关于这些第三方库的任何信息,只需将它们添加到src/resources/META-INF/lib 并提交到 SVN。如果我们谈论的是黑盒方法,那是最好的方法。

【讨论】:

以上是关于收到一个主 jar 文件,其中包含需要在类路径中的其他 jar 文件。在我的 Maven 项目中包含这个主 jar 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

SBT:如何创建实用程序 jar 作为构建后步骤以将所有依赖 jar 包含在类路径中

尽管 jar 在类路径中,但获取 ClassNotFoundException

TestNG 错误在类路径中找不到类

如何找到包含类定义的jar文件? [关闭]

在Eclipse中的Web Fragment项目中部署库

如何正确引用蚂蚁任务中的路径?