java - 如何将jar包集成到maven项目中

标签 java eclipse maven jar

我正在将一些 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/

相关文章:

java - spring-boot-starter-jetty 和 Jetty 模块 - Maven 魔法

使用 Jersey 测试框架进行测试的 Maven 依赖项

java - Android StartActivity 不会启动新 Activity

java - <anonymous> 不是抽象的,不会覆盖 AsyncHttpResponseHandler 中的抽象方法 onFailure(int,Header[],byte[],Throwable)

java - JDK、Eclipse 和路径变量

java - 如何在eclipse中运行maven项目(打印出 "Hello Word")

maven - Selenium Netbeans 项目到可运行的 jar

java - 我可以告诉android系统当前没有插入耳机吗?

java - java 表达式中的 2L 与 2

java - 创建一个自定义的Facebook登录RelativeLayout和这个布局的Onclick,调用facebook登录api?