JavaWeb学习路线(11)—— Maven延伸

这篇具有很好参考价值的文章主要介绍了JavaWeb学习路线(11)—— Maven延伸。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、分模块设计

(一)概念: 将项目按功能拆分出若干个子模块。

(二)作用: 方便项目管理维护、扩展,也方便模块间相互调用,资源共享。

(三)具体实现

1、抽取公共包作成模块(以pojo实体类为例)
JavaWeb学习路线(11)—— Maven延伸,学习,maven,java
2、向使用的项目添加依赖
JavaWeb学习路线(11)—— Maven延伸,学习,maven,java
3、向使用类中引用
JavaWeb学习路线(11)—— Maven延伸,学习,maven,java
(四)注意事项

  • 分模块设计需要先针对模块设计,再进行编码。

二、继承与聚合

(一)继承

1、概念: 继承描述的是两个工程间的关系,与java中的继承相似,子工程可以继承父工程中的配置信息, 常见于依赖关系的继承。

2、作用: 简化依赖配置、统一管理依赖

3、实现方式: <parent> … </parent>

  • 设置父工程模块,通常设置打包方式为pom(默认jar包)
    • jar: 普通模块打包,springboot项目基本都是jar包(内嵌tomcat运行)
    • war: 普通web程序打包,需要部署在外部的tomcat服务器中运行
    • pom: 父工程或聚合工程,该模块不写代码,仅依赖管理
<!--引入父工程-->
<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifacId>
	<version>2.7.5</version>
	<relativePath/> <!--从本地仓库查询-->
</parent>

<!--配置当前工程-->
<groupId>com.zengoo</groupId>
<artifactId>xxx-parent</artifacId>
<version>1.0-SNAPSHOT</version>
<pcakaging>pom</packaging>
  • 子工程的pom.xml文件中,配置继承关系
<parent>
	<groupId>com.zengoo</groupId>
	<artifactId>xxx-parent</artifacId>
	<version>1.0-SNAPSHOT</version>
	<!--配置引入目标工程的pom包-->
	<relativePath>../zengoo-parent/pom.xml</relativePath>
</parent>
  • 父工程中配置各个工程共有的依赖(子工程会自动继承父工程的依赖)

4、版本锁定

(1)作用: 对依赖进行版本管理。
(2)原始实现方式: 在父工程的pom.xml中通过<dependencyManagement>来统一管理依赖版本

<!--父工程配置版本-->
<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>xxx</groupId>
			<artifactId>xxx</artifactId>
			<version>x.x.x</version>
		</dependency>
	</dependencies>
</dependencyManagement>
<!--子工程引入依赖-->
<dependencies>
	<dependency>
		<groupId>xxx</groupId>
		<artifactId>xxx</artifactId>
	</dependency>
</dependencies>

(3)优化使用:自定义属性列表

配置文件application.properties

<properties>
	<lombok.version>1.18.24</lombok.version>
	<jjwt.version>0.9.1</jjwt.version>
</properties>

父工程pom文件

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>xxx</groupId>
			<artifactId>xxx</artifactId>
			<version>${jjwt.version}</version>
		</dependency>
	</dependencies>
</dependencyManagement>

子工程pom文件

<dependencies>
	<dependency>
		<groupId>xxx</groupId>
		<artifactId>xxx</artifactId>
		<version>${jjwt.version}</version>
	</dependency>
</dependencies>

(二)聚合

1、作用: 将多个模块组合成一个整体,同时进行项目构建。(快速构建项目)

2、实现:

父工程(聚合工程)pom.xml

<moudles>
	<moudle>../xxx</moudle>
	<moudle>../xxx</moudle>
	<moudle>../xxx</moudle>
	<moudle>../xxx</moudle>
</moudles>

(三)继承与聚合的总结

  • 作用:
    • 聚合用于快速构建项目
    • 继承用于简化依赖配置、统一管理依赖
  • 相同点:
    • 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系只做到同一个pom文件中
    • 聚合与继承均属于设计型模块,并无实际模块内容
  • 不同点:
    • 聚合是在聚合工程中配置关系,聚合可以预设模块进行
    • 继承是在子模块中配置关系,父模块无法预设子模块继承

三、私服(Maven共享)

(一)概念: 私服是一种特殊的远程仓库,用来代理外部的中央仓库,用于解决团队内部资源共享与资源同步问题。

(二)使用私服文章来源地址https://www.toymoban.com/news/detail-521075.html

  • 步骤一:Maven的setting.xml中配置账户与密码
<server>
	<id>maven-releases</id> #发行版本仓库
	<username>admin</username>
	<password>admin</password>
</server>

<server>
	<id>maven-snapshot</id> #快照版本仓库
	<username>admin</username>
	<password>admin</password>
</server>
  • 步骤二:pom文件中配置上传地址
<distributionManagement>
	<repository>
		<id>maven-releases</id>
		<url>正式版本仓库仓库访问路径</url>
	</repository>
	<repository>
		<id>maven-snapshot</id>
		<url>快照版本仓库访问路径</url>
	</repository>
</distributionManagement>
  • 步骤三:设置私服依赖下载的仓库组地址(settings.xml)
<mirror>
		<id>maven-public</id>
		<mirrorOf>*</mirrorOf>
		<url>仓库组访问路径</url>
</mirror>
  • 步骤四:私服settings.xml中的profile属性下配置
<profile>
	<id>allow-snapshots</id>
	<activation>
		<activeByDefault>true</activeByDefault>
	</activation>
	<repositories>
		<repository>
			<id>maven-public</id>
			<url>仓库组访问路径</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
</profile>

到了这里,关于JavaWeb学习路线(11)—— Maven延伸的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaWeb-Maven的应用

    1. Maven POM 2. pom.xml POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

    2024年02月08日
    浏览(25)
  • Javaweb之Maven的详细解析

    1.2 初识Maven 1.2.1 什么是Maven Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 官网:Maven – Welcome to Apache Maven Apache 软件基金会,成立于1999年7月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生的非盈利性组织。

    2024年02月04日
    浏览(25)
  • java maven学习

    我本身是个前端,目前Java都算是自学,为了直接能做Java服务端开发,我其实很多基础都没学,直接上项目做东西。现在来补充常用maven。避免以后出现低级错误。 Maven 的详细解释和安装_tengyuxin的博客-CSDN博客 1. 检查网络 2. 检查maven配置是否正常 重点看maven的 setting配置文件

    2023年04月17日
    浏览(28)
  • 【JavaWeb后端开发-第八章】Maven高级

        Web开发讲解完毕之后,我们再来学习Maven高级。其实在前面的课程当中,我们已经学习了Maven。     我们讲到 Maven 是一款构建和管理 Java 项目的工具。经过前面章节 web 开发的学习,相信大家对于 Maven 这款工具的基本使用应该没什么问题了。我们掌握了 Maven 工具

    2024年01月20日
    浏览(32)
  • 黑马程序员JavaWeb开发|Maven高级

    将项目按照功能拆分成若干个子模块,方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。 注意:分模块开发需要先对模块功能进行设计,再进行编码。不会先将工程开发完毕,然后进行拆分。 继承:描述的是两个工程间的关系,与java中的继承相似,子工程

    2024年01月23日
    浏览(31)
  • idea导入javaweb项目非maven(保姆级)

    前言:网上下载的代码不会运行???总是报错不知道如何解决???那么你可能需要看看我这篇文章可能会解决你的疑惑 一、java环境jdk和jre,尽量是1.8,目前1.8最通用 二、idae开发工具需要支持web开发的版本哦 三、tomcat尽量保持版本在7.0~9.0太高或者太老都会出现问题 四、mysql版本尽量

    2024年02月04日
    浏览(34)
  • [JavaWeb]【十四】web后端开发-MAVEN高级

    目录 一、分模块设计与开发 1.1 分模块设计  1.2 分模块设计-实践​编辑 1.2.1 复制老项目改为spring-boot-management 1.2.2 新建maven模块runa-pojo 1.2.2.1 将原项目pojo复制到runa-pojo模块  1.2.2.2 runa-pojo引入新依赖 1.2.2.3 删除原项目pojo包 1.2.2.4 在spring-boot-management(原项目)引入runa-pojo依赖

    2024年02月11日
    浏览(27)
  • maven如何建立JavaWeb项目并连接数据库,验证登录

    这里是建立建立web项目:Maven如何创建Java web项目(纯干货版)!!!_明天更新的博客-CSDN博客 我们主要演示如何连接数据库验证登录。 1.在webapp目录下创建我们的登录页面:index.jsp    还需要再写一个验证登录成功的页面(如果页面跳转成功就代表登录成功)  内容如下:

    2024年02月13日
    浏览(35)
  • 学习大数据,所需要的java(Maven)基础(2)

    以对Spring的jar包依赖为例:Spring的每一个版本中都包含spring-context,springmvc等jar包。我们应该导入版本一致的Spring jar包,而不是使用4.0.0的spring-context的同时使用4.1.1的springmvc。 问题是如果我们想要将这些jar包的版本统一升级为4.1.1,是不是要手动一个个修改呢?显然,我们有

    2024年04月29日
    浏览(22)
  • 学习大数据,所需要的java(Maven)基础(1)

    maven是干什么用,的我们先通过企业开发中的时间需求来看一看那些方面是我们技术不足。 java项目,每个项目需要复制一份jar包,Maven后只在本地仓库中保存一份 java项目,自己去网上找jar包,费劲心血找的jar包里面有的时候并没有你需要的哪个类。 Maven就会自动从仓库进行

    2024年04月26日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包