我应该在Mac上的哪里存储第三方Java库?
我是半园艺专家。我想下载一些ApacheCommons和GoogleGuava库,以便在Eclipse中使用。多个Q&a(,)表示自己下载该库,然后将其作为“用户库”加载到Eclipse中,我可以手动将其添加到项目中,或者通过像Maven这样的自动化项目管理插件。然而,这就留下了一个问题,我应该在我的系统上实际将库存储在哪里?(Mac OS) 理想情况下,我希望它位于所有Mac/*NIX系统通用的目录中。然而,这似乎表明这样做是一个坏主意,并意味着我应该在使用它的每个项目中保留库的单独副本。这似乎既浪费了空间(对于使用相同库版本的项目),也使在单独的文本编辑器中筛选Java文件成为一件麻烦事,因为库存储在Eclipse项目的文件结构中,而不是系统级我应该在Mac上的哪里存储第三方Java库?,java,eclipse,macos,Java,Eclipse,Macos,我是半园艺专家。我想下载一些ApacheCommons和GoogleGuava库,以便在Eclipse中使用。多个Q&a(,)表示自己下载该库,然后将其作为“用户库”加载到Eclipse中,我可以手动将其添加到项目中,或者通过像Maven这样的自动化项目管理插件。然而,这就留下了一个问题,我应该在我的系统上实际将库存储在哪里?(Mac OS) 理想情况下,我希望它位于所有Mac/*NIX系统通用的目录中。然而,这似乎表明这样做是一个坏主意,并意味着我应该在使用它的每个项目中保留库的单独副本。这似
那么我应该把第三方Java库放在哪里呢?当我以手动方式维护我的项目依赖关系时,我遇到了同样的问题。很难控制它们,如果更新打破了可传递的依赖关系,那么有时更新库会是一次非常痛苦的经历 当我切换到
Maven
时,所有这些痛苦都消失了
配置Maven时,可以设置这些库所在的目录(公共路径为{user.dir}/.m2
}),并且每次向项目添加依赖项时(通过POM
),Maven都会检查该库是否已下载。如果未下载,它将下载并存储该库以备将来使用(同一版本)。它还为您解决了可传递的依赖关系,因此您不必担心在手动更换JAR时会破坏它
这样,您就不必担心库在哪里,您的IDE将使用apropiate Maven插件自动引用它们
我不是说你应该使用Maven,但是如果你的问题是管理依赖关系,那么就使用Maven(或者任何其他依赖关系管理系统,例如:
Gradle
)可能会对您有所帮助。当我以手动方式维护项目依赖关系时,也遇到了同样的问题。很难控制它们,如果更新打破了可传递的依赖关系,有时更新库可能会是一次非常痛苦的经历
当我切换到Maven
时,所有这些痛苦都消失了
配置Maven时,可以设置这些库所在的目录(公共路径为{user.dir}/.m2
}),并且每次向项目添加依赖项时(通过POM
),Maven都会检查该库是否已下载。如果未下载,它将下载并存储该库以备将来使用(同一版本)。它还为您解决了可传递的依赖关系,因此您不必担心在手动更换JAR时会破坏它
这样,您就不必担心库在哪里,您的IDE将使用apropiate Maven插件自动引用它们
我不是说你应该使用Maven,但是如果你的问题是管理依赖关系,那么就使用Maven(或者任何其他依赖关系管理系统,例如:
Gradle
)可能会对您有所帮助。您引用的评论在方法上相当幼稚。有太多的构建管理工具来处理依赖关系,而不必处理这些细节
如果您决定使用一个工具,例如,您的依赖项将下载到指定的本地存储库(文件系统上的目录),并且所有Mavenized应用程序都可以轻松地配置为使用这些(共享)工件
大多数受Java支持的IDE(如Eclipse)都提供了使用Maven初始化项目的选项(或者,作为另一个例子),并且具有光滑的接口,可以轻松编辑它们的配置文件,以指定项目将使用哪些依赖项
与手动JAR/工件管理相反,我强烈推荐这两种方法中的任何一种,即使对于基本的个人修补项目也是如此。您引用的评论在方法上相当幼稚。有太多的构建管理工具来处理依赖性,而不必处理这些细节 如果您决定使用一个工具,例如,您的依赖项将下载到指定的本地存储库(文件系统上的目录),并且所有Mavenized应用程序都可以轻松地配置为使用这些(共享)工件 大多数受Java支持的IDE(如Eclipse)都提供了使用Maven初始化项目的选项(或者,作为另一个例子),并且具有光滑的接口,可以轻松编辑它们的配置文件,以指定项目将使用哪些依赖项
我强烈推荐这两种方法中的任何一种,而不是手动JAR/工件管理,即使是对于基本的个人修补项目也是如此。正如克里斯蒂安所说,我也推荐Maven。它可以自动处理您刚才提到的所有内容,并且可以轻松地切换版本/升级到新版本等,而无需担心ying建议自己处理JAR。正如克里斯蒂安所说,我也推荐Maven。它可以自动处理您刚才提到的所有内容,并且可以轻松地切换版本/升级到新版本等,而无需担心自己处理JAR。