我正在将一些jar文件作为依赖项集成到maven项目中。一些项目合作伙伴给了我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中的代码似乎表现不同:
问题是这个错误非常难以确定/修复。由于我无法访问罐子的源代码,因此我无法弄清楚发生了什么以及在哪里。我想问题是涉及到不同版本的软件包。
有没有办法确保jar中的符号总是使用jar本身的代码解析,还是有更好的方法将jar转换为Maven依赖项?
答案 0 :(得分:1)
不要将公共和/或私有依赖项合并到一个uber-jar中并将其部署到您的存储库。相反,正确地对你的项目进行mavenize,编写一个引用所有依赖项(包括私有项)的pom.xml
,将这些依赖项部署到你的repo并永远开心。您可以随时为私有jar设计一些组/工件/版本元组,并相应地编写POM,正确引用相互依赖关系。只要保持一致!
干杯,