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类中的时间方法了