常见面试题28

简介: Maven 是 Java 项目自动化构建工具,用于项目构建、依赖管理、生命周期管理及项目信息维护。遵循标准目录结构和“约定优于配置”原则,支持清理、编译、测试、打包、部署等操作,提升开发效率与规范性。

maven 用来做什么

Maven 是一个流行的项目管理工具,主要用于 Java 项目的构建、依赖管理和项目信息管理。以下是 Maven 的主要用途:

  1. 项目构建

     Maven 可以帮助开发者对 Java 项目进行自动化构建。通过 Maven 的约定优于配置的原则,开发者只需定义项目的基本结构和依赖关系,Maven 就可以自动完成项目的编译、测试、打包等构建工作。

  1. 依赖管理

Maven 通过中央仓库和本地仓库来管理项目的依赖库。开发者可以在项目的配置文件中声明所需的依赖,Maven 将自动下载并管理这些依赖库。

  1. 项目信息管理

通过 Maven,开发者可以方便地管理项目的元数据信息,如项目名称、版本号、作者、许可证等。这些信息可以被用于生成项目文档、发布到中央仓库等操作。

  1. 项目报告

Maven 提供了丰富的插件机制,可以生成各种项目报告,如单元测试报告、代码覆盖率报告、静态代码分析报告等,帮助开发者更好地了解项目的状态。

  1. 项目部署

Maven 可以帮助开发者将构建好的项目部署到指定的环境中,如本地、测试、生产环境等。

maven的规约说一下

  • /src/main/java/ :Java 源码。
  • /src/main/resource :Java 配置文件,资源文件。
  • /src/test/java/ :Java 测试代码。
  • /src/test/resource :Java 测试配置文件,资源文件。
  • /target :文件编译过程中生成的 .class 文件、jar、war 等等。
  • pom.xml :配置文件

Maven的生命周期

Maven 生命周期按照构建过程分为三个部分,即 清理(clean)、构建(build) 和 站点生成(site)。每个部分包含不同的阶段(phase),执行的顺序是固定的,也就是说 Maven 在执行构建时会依次运行每个阶段。

以下是 Maven 的生命周期和各个阶段的简要说明:

  1. 清理生命周期
  1. pre-clean:在清理之前执行的动作
  2. clean:清理上一次构建生成的文件
  1. 构建生命周期
  1. validate:验证项目是否正确并且所有必要信息都可用
  2. compile:编译项目的源代码
  3. test:测试编译后的代码
  4. package:将编译后的代码打包成可发布的格式,如 JAR、WAR 等
  5. install:将打包好的代码安装到本地仓库,方便其他项目进行依赖管理
  6. deploy:将打包好的代码部署到远程仓库,方便其他人使用
  1. 站点生命周期
  1. pre-site:在生成站点之前执行的动作
  2. site:生成项目的站点文档
  3. post-site:在生成站点之后执行的动作,如部署站点到服务器上
  4. site-deploy:将生成的站点部署到远程服务器上

微服务的好处?一定比单体好吗?

面试官这个不一定,技术还是为业务服务的,简单的业务单体肯定更好,他没有分布式事务、服务雪崩等一系列服务治理的问题,并且部署、维护成本低。微服务更适合一些表模型复杂、业务链路长的场景,这样虽然会带来一些服务治理问题,但是也降低了服务之间的耦合,有利于后续的服务拓展。

常见的负载均衡算法

有轮询、加权轮询、权重、响应时间、随机、区域可用等吧,我们项目中一般都是轮询,它的意思就是当有多台机器的时候,就一个一个轮着来。

目录
相关文章
|
19天前
|
网络协议 Linux 虚拟化
配置VM网络:如何设定静态IP以访问主机IP和互联网
以上就是设定虚拟机网络和静态IP地址的基本步骤。需要注意的是,这些步骤可能会因为虚拟机软件、操作系统以及网络环境的不同而有所差异。在进行设定时,应根据具体情况进行调整。
195 10
|
7天前
|
机器学习/深度学习 弹性计算 网络协议
阿里云服务器ECS c9i实例收费价格:2核4G、4核8G和8核16G优惠配置整理
阿里云ECS计算型c9i实例,2核4G、4核8G、8核16G享优惠价,搭载Intel Xeon处理器,主频3.2GHz,适用于Web服务、机器学习等场景,ESSD云盘,网络性能强劲,限时活动价格低至181.73元/月。
165 95
|
19天前
|
人工智能 运维 定位技术
【微笑讲堂】AI时代的Geo优化:掌握这些技能,让你的内容被智能引擎“偏爱”
大家好,我是微笑老师!本期讲解“Geo都需要掌握哪些技能”。随着AI搜索兴起,GEO(生成式引擎优化)正取代传统SEO,核心在于让内容被AI“读懂、信任、引用”。需掌握四大技能:结构化数据工程、多模态语义对齐、动态知识图谱运维、权威信源建设。从“被找到”到“被引用”,GEO与SEO融合进化,助力内容在AI时代脱颖而出。未来已来,你准备好了吗?
123 8
|
28天前
|
机器学习/深度学习 缓存 自然语言处理
【万字长文】大模型训练推理和性能优化算法总结和实践
我们是阿里云公共云 AI 汽车行业大模型技术团队,致力于通过专业的全栈 AI 技术推动 AI 的落地应用。
925 38
【万字长文】大模型训练推理和性能优化算法总结和实践
|
17天前
|
人工智能 运维 自然语言处理
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
别再靠“救火”过日子了:智能运维,正在重塑IT服务的未来
178 15
|
19天前
|
JavaScript 安全 Java
基于springboot的大学生兼职系统
本课题针对大学生兼职信息不对称、权益难保障等问题,研究基于Spring Boot、Vue、MySQL等技术的兼职系统,旨在构建安全、高效、功能完善的平台,提升大学生就业竞争力与兼职质量。
|
25天前
|
人工智能 自然语言处理 前端开发
最佳实践2:用通义灵码以自然语言交互实现 AI 高考志愿填报系统
本项目旨在通过自然语言交互,结合通义千问AI模型,构建一个智能高考志愿填报系统。利用Vue3与Python,实现信息采集、AI推荐、专业详情展示及数据存储功能,支持响应式设计与Supabase数据库集成,助力考生精准择校选专业。(239字)
124 12
|
20天前
|
安全 Java 数据库连接
一把锁的两种承诺:synchronized如何同时保证互斥与内存可见性?
临界区指多线程中访问共享资源的代码段,需通过互斥机制防止数据不一致与竞态条件。Java用`synchronized`实现同步,保证同一时刻仅一个线程执行临界区代码,并借助happens-before规则确保内存可见性与操作顺序,从而保障线程安全。
89 11
|
20天前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
194 2