java - 用于 Java 的构建工具
问题描述
我目前正在参加一些在线课程来更新我对 Java 和 Python 的了解。我还在两台不同的机器上练习使用 Git 和 GitHub 来感受版本控制(这就是产生这个问题的原因)。
本质上,我的学校项目所依赖的一台机器上有一些 JAR 文件。完成项目后,我将其推送到我的 GitHub 存储库,然后尝试在新计算机上克隆该存储库。
当我查看克隆的存储库时,我注意到 JAR 文件不存在。所以经过大量的挖掘,我发现我的 .gitignore 中所有的 JAR 文件都被忽略了(我为 netbeans 下载了一个通用的 .gitignore 模板)。
我决定研究为什么您可能要忽略 .JAR 文件。我没有找到答案,但我确实找到了这个问题,并且它是关于如何添加 .JAR 文件的公认答案。我已经弄清楚了那部分,但回答者也说:
“另外我建议你使用构建管理器作为 Maven、Gradle 或 Ant 来添加你的依赖项。”
所以我的问题:
1.) 使用第三方工具构建应用程序与将 .JAR 文件添加到 GitHub 存储库有什么关系?
2.) 默认忽略 JAR 文件的原因是什么?
3.) 新的计算机程序员应该关心使用这些工具之一吗?(我几乎不明白以任何方式构建和编译之间的区别)。
解决方案
git、svn 和 cvs 等版本控制工具旨在对代码进行版本控制,而不是二进制文件,尤其是未编译的代码。
将 jars 添加到项目的源代码中也会使该项目变得更大。
如果您确实想在某个地方“保存”您的 jar,您将使用存储库和依赖管理工具,例如 Maven Central、Ivy 或 Gradle。
编辑
您开发一个项目,即您编写代码并将其提交给 git。您使用 git 来处理不同版本的代码并与其他开发人员协作。您的代码可能具有依赖关系,例如 log4j 或其他。您可以使用 Maven / Ivy / Gradle 从 jar 存储库中动态获取这些内容。这样,我可以快速克隆您的项目(源),然后从中央源获取依赖项。它避免了在 N 个不同项目中复制库。
推荐阅读
- sql-server - 不支持使用“身份”模式修改列。列:'ID'。表:'CodeFirstDatabaseSchema.BidTo'
- jquery - 动态禁用jqgrid拖放
- localization - NuGet 包本地化对抗
- php - PDO does not throw exception
- angular - 当我从 angular2 应用程序注销时,Angular2 oidc-client 未清除 mvc 应用程序的 cookie
- scope - 将 MDX 维度成员显示为度量 (SSAS)
- r - 计算每个特定字符的行数
- sql - 为 SSIS 中的行添加时间
- php - Laravel php artisan 迁移空数据库上的错误
- java - 设备特定的振动问题