IDEA配置maven,热部署,生命周期和插件,maven工程的聚合和继承

news2025/7/5 11:37:43

1.maven配置

先来说maven配置

首先到官网下载

https://mvnrepository.com/search?q=maven

解压就可以

然后解压完会生成一个apache-maven-3.3.9的文件

我们配置一下阿里云的镜像仓库

D:\maven\apache-maven-3.3.9\conf

我的是这个,你们的和我不一样,找到conf下有一个settings.xml的文件

 然后复制进去

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--  配置本地仓库位置  -->
<localRepository>D:/Repositories/Maven</localRepository>
<!--  Apache Maven 插件  -->
<pluginGroups> </pluginGroups>
<proxies> </proxies>
<!--  服器:不是必须  -->
<servers>
<server>
<id>tomcat8</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
<mirrors>
<!--  中央仓库位置  -->
<!-- 阿里云中央仓库位置 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<!-- 取代pom文件中的id为central配置 -->
<mirrorOf>central</mirrorOf>
</mirror>
<!-- 官方中央仓库位置 -->
<mirror>
<id>Central</id>
<url>http://repo1.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
<!--  配置JDK 默认编译级别1.5,那么高版本中的新特性就识别不了,从编译报错 -->
<profile>
<id>jdk1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>

在这里将这个路径改为 你本地仓库的路径 ,就是创建一个文件夹,然后放下载过来的东西

然后这里有个问题就是说如果你因为网络原因在创建项目的时候那些依赖还没有下载完,或者说是下载失败了,但是他这个依赖其实在你本地仓库就已经存在了,只不过说下载中断,那他下次再需要这个依赖的时候,他就会从你的本地仓库先去找,他找到有这个依赖,但是你还没有下完,那么他所兼容这个依赖时就会出错,就是你还没有下完,然后这里我提供了一个你可以去清除你没有下完的一些文件让他重新下载

@echo off
  
rem 这里写你的仓库路径
set REPOSITORY_PATH=D:\Repositories\Maven
rem 正在搜索...
for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (
    del /s /q %%i
)
rem 搜索完毕
pause

创建一个记事本,然后将上面的代码复制进去,将代码里面的路径改为你本地仓库的路径,再将后缀名以bat为结尾那么它就是可以执行的一个程序,它就会去清理掉你本地仓库的一些没有下完的资源让他重新去下载

好现在我们来将maven添加到我们的环境变量中

创建一个maven_home新的环境,将maven的主路径添加在里面,再将maven下的bin目录这个位置添加到path里面,下面的系统环境变量也是一样

在控制台输入

mvn -v

有东西就是成功了,到我们的idea

 

将刚才安装的maven主路径放置于第一个,将xml放在用户设置文件,然后在将你的本地仓库放在最后一个这样你的maven就配置好了

2.JRebel热部署

在这里找到这个节jrebel的插件将它下载,然后由于这里我已经安装好配置完l,这里我就不太好演示你们可以去参考其他的博客,看他是怎么去放,这个破解我提供在这,如果别的不行就用我这个

http://jrebel.qekang.com/d6a3cf15-05e7-4d2e-8d57-d89cc8c290dc

配置完后在这里启动

 

来说说他可以干嘛:

在我们之前写的项目中是不是呃我一旦改了这里面的东西我就需要去重启我的服务器,然后我才能看到它更改后的效果,但是如果你是用热部署去执行那么他这里就不会说让我重启服务器而是实时刷新

3.生命周期和插件

1,

Maven构建生命周期描述的是一次构建过程经历经历了多少个事件。

Maven对项目构建的生命周期划分为3个阶段。

clean生命周期:清理工作。

default生命周期:核心工作,例如编译,测试,打包,部署等。site生命周期:产生报告,发布站点等。

Maven有三个内置的构建生命周期(build lifecycle),它们彼此独立,分别是:

clean、default、site。clean生命周期主要负责项目的清理工作,default生命周期 主要负责项目的部署工作,site生命周期主要负责创建项目的web站点。

2,

我们平常用的maven命令

mvn clean package中的clean属于clean生命周期,package属于 default生命周期。

每个生命周期都有一些列不同的构建阶段(build phase,也叫build stage)组成。生命周期内的这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段。比如clean生命周期有pre-clean、clean、post-clean三个阶段,当我们执行mvn clean 的时候其实相当于执行了mvn pre—clean clean,clean前面的阶段都会被执行。

生命周期及其包含的阶段如下:Clean生命周期:

阶段(phase)

说明

pre-clean 执行清理前的预处理工作

clean 清理之前构建的结果

post-clean 执行清理后需要做的工作

3,maven常用命令简单

mvn clean:表示运行清理操作(会默认把target文件夹中的数据清理)。

mvn clean compile:表示先运行清理之后运行编译,会将代码编译到target文件夹中。

mvn clean test:运行清理和测试。 mvn clean package:运行清理和打包。

mvn clean install:运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用。

mvn clean deploy:运行清理和发布(发布到私服上面)

在项目旁边有一个M开头的字母标签点开这里面就会有插件和生命周期一些东西,我们双击package就会在target下生成一个jar的文件(我这个是java项目,如果你们是war那就是web项目)

那么我们知道jar的话它只是作为一个依赖,就是提供第三方依赖的这种感觉,不能说让当做一个项目来跑起来,那么这个时候我们就要用到springboot的一个插件,在执行之前我们让他保持最新的状态,在控制台输入

 mvn clean compile

将里边大概存在的那个jar给他刷掉,就是更新掉保证这个项目是处于最新的状态 

我们在pom.xml来配置我们springboot的插件依赖

    <build>
        <!-- 设置输出名称为 springboot -->
        <finalName>springboot</finalName>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.7.12</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

一定要记得刷新,

这个代码是什么意思呢,就是他把package那个生命周期按钮,换为springboot导包的这个方式,就是我们点击package的时候他会直接触发这个sringboot里面所含的打包方式,就不再是原来我们所说倒了一个jar包,我们来看

是不是多了一个springboot.jar.original结尾的文件,那这个你就可以拿去部署项目了

4.maven工程的聚合和继承

首先我们知道maven是pom打包方式,他里面可以有很多模块,它里面的模块和模块之间的依赖,父项里面有子项模块的配置,子项里面有父项模块的配置路径,这些依赖这些东西都是基于pom.xml里面说给他定义的,这些比如说父项下面有那些儿子模块是什么,或者说他的子项上的父亲模块是什么,可以调用个个模块之间的东西和方法

拿这张图片来说,这个maven五下面的两个子项目两个最大的子项目一个zmall-common,一个是

zmall-modules,在zmall-common的中有一个Datautils生成当前日期的方法,那么在zmall-moudules中就要引入他这个里面的方法,就是jsp中用到这个方法

所以我们在zmall-modules中指定了他要去调用的依赖

并且在zmall-common-system中对这个方法进行调用

效果就是为

我们发布到tomcat就有我们java类中的时间方法了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1841903.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Talk|香港科技大学冯宸:高效自主的大尺度场景空中覆盖与重建

本期为TechBeat人工智能社区第601期线上Talk。 北京时间6月19日(周三)20:00&#xff0c;香港科技大学冯宸博士生—冯宸的Talk已经准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “高效自主的大尺度场景空中覆盖与重建”&#xff0c;他围绕团队在利用无人机…

【C++题解】1324 - 扩建鱼塘问题

问题&#xff1a;1324 - 扩建鱼塘问题 类型&#xff1a;分支问题 题目描述&#xff1a; 有一个尺寸为 mn 的矩形鱼塘&#xff0c;请问如果要把该鱼塘扩建为正方形&#xff0c;那么它的面积至少增加了多少平方米&#xff1f; 输入&#xff1a; 两个整数 m 和 n 。 输出&…

AI 已经在污染互联网了。。赛博喂屎成为现实

大家好&#xff0c;我是程序员鱼皮。这两年 AI 发展势头迅猛&#xff0c;更好的性能、更低的成本、更优的效果&#xff0c;让 AI 这一曾经高高在上的技术也走入大众的视野&#xff0c;能够被我们大多数普通人轻松使用&#xff0c;无需理解复杂的技术和原理。 其中&#xff0c;…

大语言模型的微调方法_大语言模型六种微调方法

01 引言 自2018年BERT发布以来&#xff0c;“预训练微调”成为语言模型的通用范式。以ChatGPT为代表的大语言模型针对不同任务构造Prompt来训练&#xff0c;本质上仍然是预训练与微调的使用范式。千亿规模的参数微调需要大量算力&#xff0c;即使提供了预训练的基座模型&…

RPM命令和YUM命令

目录 一、RPM软件包 1.1、RPM概述 1.2、查询已安装的rpm软件信息 1.3、查询未安装的 RPM 软件包文件中信息 1.4、安装、升级、卸载 RPM 软件包 二、YUM常规命令 三、手动配置Apache&#xff08;http&#xff09;服务 3.1、前提条件 3.2、开始配置 3.3、开启验证服务 …

YOLOv10改进 | 注意力篇 | YOLOv10引入iRMB

1. iRMB介绍 1.1 摘要:本文重点关注开发现代、高效、轻量级的模型来进行密集预测,同时权衡参数、FLOP 和性能。 反向残差块(IRB)作为轻量级 CNN 的基础设施,但基于注意力的研究尚未认识到对应的部分。 这项工作从统一的角度重新思考高效IRB和Transformer有效组件的轻量级…

更换域名流程记录

华为云的服务器&#xff0c;阿里云购买的域名。 1.购买域名 2.在域名服务商绑定服务器ip&#xff08;以阿里云为例&#xff09; 控制台->域名控制台->域名列表->点击域名->域名解析->添加记录 记录类型填A , 主机记录“”或“www”&#xff0c;记录值填服务器i…

自养号测评助亚马逊、速卖通店铺快速提升商品流量与转化率?

在全球化的浪潮下&#xff0c;跨境电商行业如日中天&#xff0c;速卖通作为行业的领军者&#xff0c;汇聚了世界各地的消费者与商家。要想在速卖通平台上成功打造爆款产品&#xff0c;我们需从多个维度出发&#xff0c;精心策划与实施。 一、产品选择的艺术 在速卖通上&#…

Go web框架|Beego、Gin、Echo、Iris等干货教程

Go 是一门正在快速增长的编程语言&#xff0c;专为构建简单、快速且可靠的软件而设计。golang提供的net/http库已经很好了&#xff0c;对于http的协议的实现非常好&#xff0c;基于此再造框架&#xff0c;也不会是难事&#xff0c;因此生态中出现了很多框架。 本篇文章主要介绍…

平安养老险浙江分公司开展防范非法集资宣传,守护群众“钱袋子”

为进一步提高群众对非法集资的防范意识的鉴别能力&#xff0c;近期&#xff0c;平安养老保险股份有限&#xff08;以下简称“平安养老险”&#xff09;浙江分公司以“守住钱袋子、护好幸福家”为宣传主题&#xff0c;深入居民社区、办公职场等公共场所开展的宣传活动。 平安养老…

微信小程序轮播图

效果图 详情可见 微信小程序 参照&#xff1a;swiper | uni-app官网 代码&#xff1a; <!--轮播图-- > <swiper interval"2000" autoplay"true" circular"true" style"height: 300px;"><swiper-item style&qu…

Nacos 2.x 系列【15】数据源插件支持达梦、Oracel、PostgreSQL......

文章目录 1. 概述2. 持久层机制2.1 固定语句2.2 数据源插件 3. 案例演示3.1 编译已实现插件3.2 自定义插件3.3 数据库初始化3.4 插件引入3.4.1 方式一&#xff1a;引入到源码3.4.2 方式二&#xff1a;插件加载目录 3.5 修改配置3.6 测试 1. 概述 在实际项目开发中&#xff0c;…

【尚庭公寓SpringBoot + Vue 项目实战】移动端项目初始化(十九)

【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化&#xff08;十九&#xff09; 文章目录 【尚庭公寓SpringBoot Vue 项目实战】移动端项目初始化&#xff08;十九&#xff09;1、 SpringBoot配置2、Mybatis-Plus配置3、Knife4j配置4、导入基础代码5、导入接口定义代码6…

ElementPlus组件与图标按需自动引入

按需自动引入组件 1. 安装ElementPlus和自动导入ElementPlus组件的插件 pnpm install element-plus pnpm install -D unplugin-vue-components unplugin-auto-import 2. vite.config.ts进行修改 import { defineConfig } from vite import vue from vitejs/plugin-vue // …

从boost库到时间戳

一、以问题引入 授权证书一般有到期时间的说法&#xff0c;公司测试同事在测试更新后的证书时&#xff0c;将系统时间调到了2050年&#xff0c;重启服务后发现各个进程的cpu占用率特别高&#xff1b;结合日志分析&#xff0c;发现这些进程 都在不停的刷heartbeat()的日志&#…

正版 navicat 下载

1. 打开浏览器访问 navicat 官网 Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版 windows 用户选择这三项其中一个就可以 2. 下载 点击之后等个几秒钟就会开始下载了 3. 双击打开 下载好的 .exe 程序 进入安装程序 (不影响之前已经安装过的) 可…

12.2 Go 编写测试代码

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

web3技术的特点

Web1、Web2和Web3是互联网发展的三個阶段&#xff0c;它们在架构、数据所有权、应用模式等方面都有着本质的区别。需要注意的是&#xff0c;Web3 仍处于早期发展阶段&#xff0c;其技术和应用场景还在不断探索和完善。Web3 的最终形态和影响还有待观察。北京木奇移动技术有限公…

排序1---插入排序

目录 插入排序的基本思路&#xff1a; 插入排序的代码实现&#xff1a; 代码&#xff1a; 代码解读&#xff1a; 插入排序的时间、空间复杂度&#xff1a; 插入排序的基本思路&#xff1a; 插入排序是一个比较简单的排序。 我们插入排序就是我们先假设前面的一段区间有序…

【每天学会一个渗透测试工具】AWVS安装及使用指南

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 ✨AWVS介绍 是应用漏洞扫描工具 &#x1f4a6;使用docker安装 docker pull dockermi3aka/awvs启动镜像 docker run -dit …