在哪里放置Java库以供通用?(最佳做法?)

在哪里放置Java库以供通用?(最佳做法?),java,eclipse,Java,Eclipse,我是Eclipse/Java开发新手 在我们所有的应用程序中,我们使用了很多库,比如Log4J、JDom、Apache配置等 现在我在Eclipse项目中创建一个lib文件夹,并将这些库添加到所有项目中,然后创建包含这些库的JAR 我不想一次又一次地复制相同的库,并将它们捆绑起来,因为这些库对我的所有应用程序都是通用的。我显然想减少我的应用程序的足迹 有什么最佳实践吗 谢谢Maven或Gradle将是常见/明显的建议,但这些工具有一个陡峭的学习曲线,在我看来,不是每个项目的正确选择(很多,但不是

我是Eclipse/Java开发新手

在我们所有的应用程序中,我们使用了很多库,比如Log4J、JDom、Apache配置等

现在我在Eclipse项目中创建一个lib文件夹,并将这些库添加到所有项目中,然后创建包含这些库的JAR

我不想一次又一次地复制相同的库,并将它们捆绑起来,因为这些库对我的所有应用程序都是通用的。我显然想减少我的应用程序的足迹

有什么最佳实践吗


谢谢

Maven或Gradle将是常见/明显的建议,但这些工具有一个陡峭的学习曲线,在我看来,不是每个项目的正确选择(很多,但不是全部)

对于手动管理这些依赖关系,在每个项目中拥有单独的副本比在项目/应用程序之间共享它们要好。原因是共享库将每个项目/应用程序耦合到这些库的相同版本;如果要迁移其中一个应用程序以使用其中一个库的较新版本,会发生什么情况?所有其他应用程序也将获得该新版本(这可能是可取的,也可能不是可取的,并且可能会导致一些“头痛”的问题)

您将无法减少应用程序的“占用空间”,因为最终,无论您如何管理它们,每个应用程序都必须能够访问它所需的库


像Maven和Gradle这样的依赖关系管理工具实际上采用了这种方法,只是它们隐藏了复制JAR的工作。

Maven或Gradle将是常见/明显的建议,但这些工具有一个陡峭的学习曲线,依我看,它们不是每个项目的正确选择(很多,但不是全部)

对于手动管理这些依赖关系,在每个项目中拥有单独的副本比在项目/应用程序之间共享它们要好。原因是共享库将每个项目/应用程序耦合到这些库的相同版本;如果要迁移其中一个应用程序以使用其中一个库的较新版本,会发生什么情况?所有其他应用程序也将获得该新版本(这可能是可取的,也可能不是可取的,并且可能会导致一些“头痛”的问题)

您将无法减少应用程序的“占用空间”,因为最终,无论您如何管理它们,每个应用程序都必须能够访问它所需的库


像Maven和Gradle这样的依赖关系管理工具实际上采用了这种方法,只是它们隐藏了复制JAR的工作。

我建议的第一件事是开始使用
Maven
它可以很好地处理依赖关系问题

您只需定义一个
“用户库”
,如
windows->preferences->java->User Libraries->new
,然后选择创建的库并添加jar添加其中的所有jar


下次只需将该用户库添加到所需的项目中,而不是所有jar。

我建议的第一件事是开始使用
maven
它可以很好地处理依赖性问题

您只需定义一个
“用户库”
,如
windows->preferences->java->User Libraries->new
,然后选择创建的库并添加jar添加其中的所有jar


下次只需将该用户库添加到所需的项目中,而不是所有jar。

是否使用依赖项管理系统?像MavenUse Maven、Ivy或其他依赖关系管理器。我建议Maven,我认为它是最常用的一个。我会将Gradle添加到列表中,尽管我大部分时间都见过Maven,特别是对于J2SE和J2EEMaven,Maven很好,但这是需要维护的额外工具。我们只使用Eclipse构建简单的Java可执行文件(JAR),而不使用依赖关系管理系统构建复杂的应用程序?像MavenUse Maven、Ivy或其他依赖关系管理器。我建议Maven,我认为它是最常用的一个。我会将Gradle添加到列表中,尽管我大部分时间都见过Maven,特别是对于J2SE和J2EEMaven,Maven很好,但这是需要维护的额外工具。我们只使用Eclipse而不是复杂的应用程序构建简单Java可执行文件(JAR)