本文由 JavaGuide 翻译并完善,原文地址:https://medium.com/@AlexanderObregon/maven-best-practices-tips-and-tricks-for-java-developers-438eca03f72b 。
- Java78
- 计算机基础65
- 数据库45
- 分布式27
- 技术文章精选集25
- AI 应用开发23
- 系统设计18
- 高性能15
- AI 编程实战12
- 框架12
- AI11
- 开发工具11
- 走近作者10
- 知识星球10
- 高可用10
- 面试准备9
- 开源项目8
- 计算机书籍7
- 学习路线6
- 走近项目5
- AI 编程技巧4
- 代码质量4
- AI 编程1
- 程序人生1
- Java面试指北1
Docker 是后端开发非常常见的容器化工具,常用于本地快速启动 MySQL、Redis、Kafka 等依赖服务,也常用于测试环境和部署交付。学习 Docker 时,要把核心概念和命令实践结合起来。
适合谁看
- 想快速理解 Docker 容器化基础的后端开发者。
- 需要用 Docker 搭建本地开发环境、测试环境或依赖服务的同学。
- 准备面试,需要讲清容器、镜像、数据卷、网络和容器与虚拟机区别的读者。
- 已经会复制 Docker 命令,但不清楚镜像构建、容器生命周期和数据持久化的工程师。
Maven 是 Java 后端项目中最常见的构建和依赖管理工具。学习 Maven 时,不要只会复制 pom.xml,还要理解坐标、仓库、依赖传递、生命周期、插件和多模块管理这些基础概念。
适合谁看
- 正在学习 Java 项目构建和依赖管理的同学。
- 使用 Maven 写项目,但遇到依赖冲突、版本不统一、多模块管理、CI 构建时容易卡住的开发者。
- 准备面试,需要讲清 Maven 核心概念和最佳实践的读者。
- 需要维护 Spring Boot、微服务或多模块 Java 项目的工程师。
Git 是开发者必须掌握的基础工具。学习 Git 时,不建议只背命令,更要理解版本控制模型、提交历史、分支协作和冲突处理,这样在团队协作和开源贡献中才不容易慌。
适合谁看
- 刚开始接触 Git 和 GitHub 的后端初学者。
- 经常使用 Git 命令,但对工作区、暂存区、分支和远程仓库理解不清的开发者。
- 准备面试,需要把 Git 常见问题讲清楚的同学。
- 想提升 GitHub 个人主页、项目展示和开源协作效率的读者。
学习重点
- Git 是分布式版本控制系统,核心是记录代码快照和提交历史。
- 工作区、暂存区、本地仓库、远程仓库分别对应不同阶段的代码状态。
- 分支让多人并行开发成为可能,合并和冲突处理是团队协作高频场景。
- Git 命令要结合真实流程理解,比如 clone、add、commit、branch、merge、pull、push。
- GitHub 可以用于代码托管、项目展示、开源协作、代码搜索、Actions 自动化和个人影响力建设。
这部分内容主要根据 Gradle 官方文档整理,做了对应的删减,主要保留比较重要的部分,不涉及实战,主要是一些重要概念的介绍。
Gradle 这部分内容属于可选内容,可以根据自身需求决定是否学习。国内 Java 后端项目里 Maven 仍然更常见,但 Android、部分 Spring Boot 项目以及需要高度定制构建流程的项目中,Gradle 使用得也很多。
Gradle 介绍
Gradle 官方文档是这样介绍的 Gradle 的:
Gradle is an open-source build automation tool flexible enough to build almost any type of software. Gradle makes few assumptions about what you’re trying to build or how to build it. This makes Gradle particularly flexible.
Gradle 是一个开源的构建自动化工具,它足够灵活,可以构建几乎任何类型的软件。Gradle 对你要构建什么或者如何构建它做了很少的假设。这使得 Gradle 特别灵活。
这部分内容主要根据 Maven 官方文档整理,做了对应的删减,主要保留比较重要的部分,不涉及实战,主要是一些重要概念的介绍。
Maven 介绍
Maven 官方文档是这样介绍的 Maven 的:
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
Apache Maven 的本质是一个软件项目管理和理解工具。基于项目对象模型 (Project Object Model,POM) 的概念,Maven 可以从一条中心信息管理项目的构建、报告和文档。
Docker 介绍
开始之前,先简单回顾一下 Docker。更完整的概念介绍可以看前一篇文章:Docker 核心概念总结。
什么是 Docker?
可以从下面几个角度理解 Docker:
- Docker 是常见的软件容器平台,基于 Go 语言开发实现。
- Docker 可以把应用和运行依赖打包到镜像中,减少开发、测试、部署环境不一致带来的问题。
- 用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。
- Docker 可以对进程进行封装隔离,属于操作系统层面的虚拟化技术。 由于隔离的进程独立于宿主和其他隔离进程,因此也称其为容器。
GitHub 不只是代码托管平台。对开发者来说,它同时承担了项目展示、代码阅读、开源协作、自动化构建和个人主页的作用。这篇文章整理一些比较实用的 GitHub 使用技巧。
一键生成 GitHub 简历与 GitHub 年报
通过 https://resume.github.io/ 这个网站你可以一键生成一个在线的 GitHub 简历。
不过,简历里是否放 GitHub 链接要看账号内容质量。如果账号里有完整项目、持续维护记录、清晰 README 和比较规范的提交历史,GitHub 链接会加分;如果只有空仓库或者临时练习代码,就没必要强行放。生成后的效果如下图所示。
版本控制
什么是版本控制
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 除了项目源代码,你可以对任何类型的文件进行版本控制。
为什么要版本控制
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
本地版本控制系统
许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一的好处就是简单,但是特别容易犯错。 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。
