繁体   English   中英

如何导出将在另一个Java项目中使用的jar以及jar使用的整个maven /外部依赖关系?

[英]How do I export a jar that will be used in another Java project, along with the entire maven/external dependencies that the jar uses?

抱歉,我的标题不清楚。

我的一些团队成员已经构建了一个供我使用的jar,我们将其称为B。该jar又使用了一个特定的maven依赖项(purejavacomm),我们将其称为C。他们通过将B导出为可运行对象而给了我B jar,选择“打包所需的库”选项。 但是,当我将B导入我的项目并尝试使用它时,我得到了一个java.lang。 关于C中的某些类(特别是自定义异常类),提供了NoClassDefFoundError和java.lang.ClassNotFoundException。 我猜这些类是在B的任何地方都没有显式调用的类,这就是为什么不将它们打包在一起的原因。

因此,除非我在自己的pom中包含对C的maven依赖项,否则我将无法使用B。它们是否有可能以不必显式添加C的方式导出B? 即确保C的全部包含在B中,而不仅是显式使用的类?

我们正在使用Eclipse和m2e,因此我们还没有通过mavens命令行语句来运行这些工具。

我假设您的问题发生在运行时。 如果您在pom.xml B中将C的依赖项表示为<scope>provided<scope> ,并在运行时环境中包含C.jar(例如在项目的lib文件夹下),则告诉maven您正在照顾您对C.jar的依赖。 这样可以解决您的问题。

您应该在公司使用自己的Maven存储库(请参阅Maven最佳实践 )。

它像公共存储库的代理一样工作,此外,您还可以将自己的内部JAR推送到您的存储库中。

然后,在您的Maven配置中,您应该仅指向公司回购。 然后,您的团队成员可以将其JAR B发布到仓库中,而您只需要在您自己的POM中将依赖项添加到B。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM