当前位置: 首页 > news >正文

高端网站开发建设设计本网站

高端网站开发建设,设计本网站,合肥专业网站建设公司,phpstudy如何建设网站目录 一.Maven介绍与功能 二.依赖管理 1.依赖的配置 2.依赖的传递性 3.排除依赖 4.依赖的作用范围 5.依赖的生命周期 一.Maven介绍与功能 maven是一个项目管理和构建工具,是基于对象模型POM实现。 Maven的作用: 便捷的依赖管理:使用…

目录

一.Maven介绍与功能

二.依赖管理

1.依赖的配置

2.依赖的传递性

3.排除依赖

4.依赖的作用范围

5.依赖的生命周期


一.Maven介绍与功能

maven是一个项目管理和构建工具,是基于对象模型POM实现。

Maven的作用:

  • 便捷的依赖管理:使用Maven可以简化依赖管理过程。通过在项目的pom.xml文件中声明依赖关系,Maven可以自动下载所需的依赖库,并将它们添加到项目的类路径中。这消除了手动下载和配置jar包的繁琐过程,使依赖管理更加方便和可靠。

  • 统一的项目结构:Maven定义了标准的项目结构,规定了源代码、资源文件、测试代码等目录的布局方式。这使得不同IDE(如Eclipse、IntelliJ IDEA)之间可以共享和识别相同的项目结构,简化了项目之间的迁移和协作。

  • 标准的项目构建流程:Maven提供了一套标准化的项目构建流程。通过执行Maven命令,可以进行项目的编译、测试、打包、部署等一系列操作。这种标准化的构建流程确保了项目的一致性和可重复性,提高了开发效率。


二.依赖管理

1.依赖的配置

所谓的依赖指的就是当前项目所需要的jar包,一个项目可以引入多个jar包

案例:导入多个包 mysql、ch.qos.logback两个包

首先打开maven项目工程找到pom.xml

设置依赖标签

<!--    设置标签依赖--><dependencies>
<!--        设置具体依赖--><dependency>
<!--            配置代表项目或组织的唯一标识符--><groupId>ch.qos.logback</groupId>
<!--            配置代表特定项目的唯一标识符--><artifactId>logback-classic</artifactId>
<!--            配置版本号--><version>1.2.3</version></dependency><!--        操作类似--><dependency><groupId>mysql-java</groupId><artifactId>mysql-java</artifactId><version>5.1.21</version></dependency></dependencies>

如果以前没有使用过相关jar包,则会冒红报错,因为在本地仓库没有找到相关的jar包


2.依赖的传递性

如果一个项目projectA依赖了一个A-jar包,而一个A-jar包中又依赖了其他的jar包,那么projectA对应的也就依赖了A-jar包对应的其他jar包

依赖传递有两种:一种是直接依赖,一种是间接依赖

 通过图标形势查看依赖关系

在pom中右键找到图再点击显示依赖项

这样就可以清晰看到项目之间的依赖

当然依赖可能会产生一个特殊情况,A->B->A 循环依赖,项目A依赖了项目B,而项目B依赖了项目A。这种情况也是面试题常问的一个问题

 面试题:Maven中如何解决依赖循环的问题

  1. 重构代码结构:首先,我们可以检查项目结构并尝试重构代码以消除依赖循环。这可能需要重新设计模块之间的关系,将公共功能提取到独立的模块中,或者修改模块的依赖关系,以确保它们形成一个有向无环图(DAG)。

  2. 使用接口或抽象类:如果依赖循环是由于具体类之间的相互依赖引起的,我们可以考虑使用接口或抽象类来解耦它们。这样,依赖关系将变得单向,并且可以更容易地管理。

  3. 使用Maven插件:Maven提供了一些插件来帮助解决依赖循环问题。例如,可以使用Maven的maven-dependency-plugin来分析项目依赖关系,并找出导致循环的依赖。然后,我们可以使用excludeoptional标记,将其中一个模块的依赖排除或设置为可选,以打破循环。

  4. 模块拆分:另一种方法是将存在依赖循环的模块拆分为更小的、相互独立的模块。这样,我们可以将它们放在不同的项目中,并使用Maven的多模块项目进行管理。通过将功能划分到不同的模块中,可以更好地管理和控制它们之间的依赖关系。


3.排除依赖

由上面的内容可以知道依赖具有传递性,PorjectA项目会依赖A-jar包下的所有依赖jar包。但是如果明确知道工程ProjectA中只需要A-jar包,不需要A-jar包下的某一个包,则可以通过<exclustions>标签和<exclustion>实现排除依赖

 <exclusions><exclusion><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId></exclusion></exclusions>

 可以看到用了排除依赖后相关jar包就不存在了


4.依赖的作用范围

依赖的jar包,在默认情况下,可以在任何地方使用,或者也可以通过<scope></ scope>标签来设置相应jar包的作用范围

作用范围:

  • 主程序范围有效(main文件夹内)
  • 测试程序范围有效(test文件夹范围内)
  • 是否参与打包运行(package指令范围内)

 scope标签值与对应的作用范围

案例:

设置logback的jar包的范围为test,实现只能在test测试程序中运行

 注意不要忘了点击更新

 接下来测试是否更改了作用范围:

1.在test中使用logback的jar包对象,可以看到有提示相应的jar包

2.在main中使用则会发现并没有相应的jar包


5.依赖的生命周期

在Maven中有三套相互独立的生命周期

  • clean 负责清理上一次编译产生的字节码文件
  • default 核心工作 负责编译、测试、打包、安装、部署等等
  • site 生成报告、发布站点等

每一套生命周期都有许多的生命周期阶段,但是我们需要用到的生命周期并不需要太多,只需要掌握以下几个核心生命周期的阶段即可

 核心的生命周期阶段

  • clean 移除上一次构建生成的文件
  • compile编译项目的源代码
  • test使用合适的单元测试框架运行测试
  • package将编译后的文件进行打包
  • install安装项目到本地仓库

注意:同一套的生命周期的运行是由循序的,后面的生命周期的运行是需要依赖前面的生命周期的运行。所以如果使用后面的生命周期阶段,就会自动执行前面的生命周期

比如运行test,会自动运行validate与compile,但是不会运行clean,因为clean与这些不是同一套的生命周期

运行指定的生命周期

有两种方式运行指定的生命周期

第一种,找到右侧栏中的maven打开项目下的生命周期,找到对应周期双击运行即可

第二种,在idea或者cmd中输入指令 mvn xxx即可执行对应的生命周期阶段

周期跳过

在工程文件中找到生命周期,找到小闪电图标,点击即可跳过对应的生命周期。


http://www.tj-hxxt.cn/news/15153.html

相关文章:

  • server2008网站建设百度竞价开户多少钱
  • 制作网站需要哪些成本产品推广方案怎么做
  • 淡水网站建设哪家便宜创意营销
  • 长沙网站建设全网营销的公司
  • 泉州做企业网站软文推广案例500字
  • 厦门营销型网站建设公司9 1短视频安装
  • 淘宝网站建设杭州百度投诉中心人工电话
  • 做外贸公司网站重不重要北京seo优化哪家公司好
  • 聊城建设工程质量信息网站永久免费自助建站软件
  • 深圳做企业网站的公司推荐网络优化的工作内容
  • 网站建设的前端和后端如何在百度上做广告宣传
  • 武汉高端网站建设优化南京百度seo公司
  • 重庆网站seo好不好网络营销网站建设
  • 给博彩做网站怎样推广app
  • 怎样做投资理财网站啥是网络推广
  • 制作公司网站需要那些资料湘潭网站制作
  • 潍坊网站建设策划方案展示型网站有哪些
  • 南宁营销型网站建设公司优化大师官方
  • 连云港网站建设哪家好百度移动
  • 网页建立seo网站关键词优化报价
  • 网站模板下载 网盘关键词优化推广
  • 专业做网站开发费用seow是什么意思
  • 德清县建设局网站seo网站推广经理招聘
  • java网站做微信分享免费网站流量统计
  • 怎么用域名建网站信息流优化师发展前景
  • 网站affiliate怎么做广州推广排名
  • 毕业设计做啥网站好360优化大师官方网站
  • 微信备份wordpressseo网站推广教程
  • 长沙做网站优化的公司最佳bt磁力猫
  • 网站建设seo视频教程百度sem竞价推广pdf