我正在将一些 jar 文件作为依赖项集成到 Maven 项目中。这些 jar 文件是一些项目合作伙伴给我的。 jar 文件之间存在依赖关系。公开可用的 jar 文件(例如 org.apache.http.client )和自行编写的代码之间也存在混合。这些 jar 包含在 eclipse-way 的示例应用程序中,即使用 .classpath
。当然这并不能直接移植到Maven。所以我做了以下事情:
- 我使用
jar -xf
/jar -cf
将这些 jar 合并为一个。 - 我使用
mvn install:install-file
安装了这个 jar。 - 我将依赖项添加到了项目的
pom.xml
我使用 Maven 设置重新创建了示例应用程序,一切似乎都正常。但是,我想在更复杂的情况下使用该库,即 Maven Web 应用程序。
在这种情况下,jar 中的代码似乎表现不同:
- http 客户端将调试消息写入日志
- 关于 xml/json 的(取消)编码似乎存在一些困惑。这会导致错误消息,使我无法使用该代码。
问题是这个错误很难确定/修复。由于我无法访问 jar 的源代码,我无法弄清楚发生了什么以及在哪里发生。我猜问题是涉及到不同版本的软件包。
是否有办法确保始终使用 jar 本身中的代码解析 jar 中的符号,或者是否有更好的方法将 jar 转换为 Maven 依赖项?
最佳答案
不要将公共(public)和/或私有(private)依赖项合并到一个 uber-jar 中并将其部署到您的存储库。相反,正确地对您的项目进行 mavenize,编写一个引用所有依赖项(包括私有(private)依赖项)的 pom.xml
,将它们部署到您的存储库,并从此幸福。您始终可以为私有(private) jar 想出一些组/Artifact/版本元组,并相应地编写 POM,正确引用相互依赖关系。只要保持一致即可!
干杯,
关于java - 如何将jar包集成到maven项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30321228/