当前位置: 首页 > 面试题库 >

在多个项目中共享JAR的最佳方法是什么?

颛孙正卿
2023-03-14
问题内容

当您有多个都使用同一组JAR库的项目时,在每个项目中一遍又一遍地包含相同的JAR太麻烦了。如果我正在从事20个不同的项目,那么我宁愿没有20个完全相同的JAR文件。使所有这些项目(以及新项目)引用同一组JAR的最佳方法是什么?

我有一些想法,但每个想法都有一些缺点:

  • 将所有JAR放在一个文件夹中,并使每个项目都在该文件夹中显示。
  • 使用Eclipse创建一个“用户库”,并使每个项目都引用该用户库。
  • 创建一个引用每个JAR的“库”项目,并使每个项目都引用该库项目。

问题答案:

使用Maven或Ivy处理这些共享的jar。如果您对更改项目过于谨慎,可以使用Ivy为您管理额外的类路径。

两者都有很好的Eclipse插件:

m2eclipse

Maven类路径容器http://img229.imageshack.us/img229/4848/mavendependencies.png

常春藤DE

IvyDE类路径容器http://img76.imageshack.us/img76/3180/cpnode.jpg

我用过的效果很好。

您会注意到,它们两个都引用了工作空间 外部 的jar ,因此删除了重复项。

更新 (通过评论提示):

我之所以推荐这种方法,是因为我坚信 声明 依赖关系会更简单明了,而不是手动包含它们。与之相关的一小笔一次性费用-对于Ivy而言要比对Maven而言要小-
但从长远来看,它确实能带来回报。

另一个较小的好处是处理传递性和冲突性依赖项。很容易忘记 为什么 在类路径中需要commons-
logging-1.1.jar以及是否需要升级到1.1.1。而且这是没有乐趣,以拉在所有所需的depencies 一个Hibernate
+注释+弹簧组合。专注于编程,而不是构建。



 类似资料:
  • 问题内容: 我有一个活动,这是整个应用程序中使用的主要活动,它具有许多变量。我还有另外两个活动,我希望能够使用第一个活动中的数据。现在我知道我可以做这样的事情: 但是我想共享很多变量,有些可能很大,所以我不想像上面那样创建它们的副本。 有没有一种方法可以直接获取和更改变量而无需使用get和set方法?我记得在Google开发者网站上读过一篇文章,建议不要在Android上使用此功能。 问题答案:

  • 问题内容: 我已经和Docker玩了一段时间,在处理持久性数据时继续寻找相同的问题。 我创建我的文件并公开一个卷,或使用它[在容器中安装主机文件夹]。 我应该对主机上的共享卷应用什么权限? 我可以想到两种选择: 到目前为止,我已经授予所有人读取/写入访问权限,因此我可以从Docker容器写入该文件夹。 将用户从主机映射到容器,以便我可以分配更多的细化权限。不确定这是否可能,但尚未找到很多相关信息。

  • 我使用Docker已经有一段时间了,并且在处理持久数据时不断发现相同的问题。 我创建并公开卷,或者使用在容器中装入主机文件夹。 我应该对主机上的共享卷应用什么权限? 我能想到两个选择: > 到目前为止,我已经为每个人提供了读/写访问权限,因此我可以从Docker容器写入文件夹。 将用户从主机映射到容器中,这样我就可以分配更多的粒度权限。不确定这是可能的,但还没有找到很多关于它。到目前为止,我所能做

  • 问题内容: 我有多个具有相似构建步骤的项目,并且我正在研究在这些项目中重用Jenkinsfile管道。我很难找到有关如何实现这样的标准(我认为)设置的文档。 这是我的要求: 1)Jenkinsfile存储在回购中,在多个项目之间共享 2)每个项目都有其自己的参数:项目在仓库中的位置。 3)至少从用户角度来看,每个项目在Jenkins中都应独立,这意味着,例如,执行和日志可在Jenkins中的每个项

  • 本文向大家介绍在JavaScript中声明多个变量的最佳方法是什么?,包括了在JavaScript中声明多个变量的最佳方法是什么?的使用技巧和注意事项,需要的朋友参考一下 当然,以下声明多个变量的方法更有效: 假设您需要添加,删除或更新变量,则可以轻松实现。 但是使用以下方法,您需要做更多更改。例如,在删除变量时,您需要删除分号。如果是第一个,则需要将var添加到第二个变量。

  • 问题内容: 这是我学习Maven的前两天,但我仍在努力学习基础知识。我有一个外部.jar文件(在公共存储库中不可用),我需要在我的项目中引用该文件,我正在尝试找出我的最佳选择。 这是一个小型项目,没有用于库的中央存储库,因此它必须是本地存储库(以某种方式添加到源代码管理中,不知道它是否应该以这种方式工作?)或.jar需要存储在磁盘在任何正式存储库之外。 1)鉴于我希望项目和库都在源代码管理中,因此