Java pom的作用

首先 我们需要明确 maven的 作用

  1. Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需做一些简单的配置,就可以批量完成项目的构建、报告和文档的生成工作。采用远程仓库和本地仓库以及一个类似 build.xml 的 pom.xml,将 pom.xml 中定义的 jar 文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的 jar,同一个版本的 jar 只需下载一次,而且避免每个应用都去拷贝 jar。
  2. 在maven 项目中 都有一个 pom.xml 文件来完成相对于的 jar包(别人已经写好的轮子)的 配置和下载
  3. 每个<dependencies里面每配置一个dependency>,
    <groupIdorg.springframework</groupId项目名
    <artifactIdspring-webmvc</artifactId项目模块
    <version3.0.5.RELEASE</version项目版本
    通过在maven 项目中的 pom文件 可以快速下载到对应需要的jar包
    将类库 以 依赖的方式引入 项目中
  4. 可以将自己需要的插件,动态地集成到 Maven,从而扩展新的管理功能。

Maven的生命周期

1、clear:移除上一次构建生成的文件

2、compile:编辑项目的源代码

3、test:使用单元测试框架进行测试,测试代码不会被打包或者部署

4、package:接受编译好的代码,打包成可发布的格式

5、install:将包安装到maven本地仓库,供本地其他maven项目使用

6、deploy:将最终的包发布到远程仓库,供其他开发人员和maven项目使用。

7、site:生成项目的站点文档

maven 项目的 目录结构

依赖的传递性

  1. 定义:若工程A依赖工程B,此时若在B中添加jar包,则工程A中也可以使用该jar包。 注意事项:

  2. 需要在工程A的pom.xml中,配置好依赖信息

  3. 需要对工程B进行安装操作,确保本地仓库里存在工程B

  4. 工程A依赖Spring的所有jar包,现在需要从4.0版本全部升级到4.1版本,如果手动一个个修改即繁琐还易错,使用配置的方式只需要更改配置的值即可。

    properties标签里使用自定义标签,自己命名即可<--> <dependency> <groupId></groupId> <artifactId></artifactId> <version>${dfr.Spring.Version}</version> <scope></scope> </dependency>

父子 项目 依赖继承

由于范围的依赖,并不具备依赖传递的特性,导致每个工程都需要声明依赖的jar包,容易造成版本不一致。

创建父工程:父工程需要指定打包方式为pom。

父工程的pom.xml配置好jar的依赖,配置如下:

<!--dependencyManagement标签下声明的依赖,并不会被子类自动引入,还需要子类显示的去引用-->  
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>com.dfr</groupId>
			<artifactId>test-jar</artifactId>
			<version>4.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</dependencyManagement>
 
<!--dependencies标签下声明的依赖,会被子类自动引入-->  
<dependencies>
	<dependency>
		<groupId>com.dfr</groupId>
		<artifactId>java-jar</artifactId>
		<version>4.1</version>
	</dependency>
</dependencies>

在子工程的pom.xml中声明父工程:

<!--继承父类--> <parent> <groupId></groupId> <artifactId></artifactId> <version></version> <!-- 以当前文件为基准的父工程的pom.xml文件的相对路径 --> <relativePath>../Parent/pom.xml</relativePath> </parent> <!--依赖关系--> <!--未指定版本号,则使用父工程中指定的版本号--> <dependencies> <dependency> <groupId>com.dfr</groupId> <artifactId>test-jar</artifactId> </dependency> </dependencies>

感谢大家的阅读,觉得有所帮助的朋友点点赞。

相关推荐
智慧老师19 分钟前
Spring基础分析13-Spring Security框架
java·后端·spring
lxyzcm21 分钟前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23
V+zmm101341 小时前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
Oneforlove_twoforjob1 小时前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
xmh-sxh-13141 小时前
常用的缓存技术都有哪些
java
AiFlutter2 小时前
Flutter-底部分享弹窗(showModalBottomSheet)
java·前端·flutter
J不A秃V头A2 小时前
IntelliJ IDEA中设置激活的profile
java·intellij-idea
DARLING Zero two♡2 小时前
【优选算法】Pointer-Slice:双指针的算法切片(下)
java·数据结构·c++·算法·leetcode
小池先生3 小时前
springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
java·spring boot·后端
CodeClimb3 小时前
【华为OD-E卷-木板 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od