MAVEN学习
Maven 是项目管理工具,对软件项目提供构建与依赖管理,maven为Java项目提供了统一的管理方式,已成为业界标准。
maven官网:Welcome to Apache Maven – Maven
WIN系统MAVEN 3.9.1安装
1. 下载
下载官网地址:Index of /dist/maven/maven-3 (apache.org)
百度网盘:
通过网盘分享的文件:apache-maven-3.9.1-bin.zip
链接: https://pan.baidu.com/s/1VKmxrU5Hg6mbEUc43wjQUw 提取码: aua6
–来自百度网盘超级会员v5的分享
2. 配置maven
将下载好的maven文件进行解压,解压之后如下图所示:
新建一个repository文件夹,用于存放本地的maven仓库
配置环境变量
变量名:MAVEN_HOME
变量值:C:\Users\A2\Desktop\apache-maven-3.9.1-bin\apache-maven-3.9.1
//此处的变量值为你存放Maven的解压路径
变量名:M2_HOME
变量值:C:\Users\A2\Desktop\apache-maven-3.9.1-bin\apache-maven-3.9.1\repository
//此处的变量值为你存放Maven的解压后目录中的文件夹的路径
//很多自动依赖的系统,如springboot、springcloud引用了该地址,建议配置上
path中新建
%MAVEN_HOME%\bin
MAVEN配置阿里镜像源
打开conf目录下的settings.xml文件,在<mirrors>添加阿里云仓库
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
配置默认的JDK版本
<profile>
<id>jdk15.0.2</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>jdk15.0.2</jdk>
</activation>
<properties>
<maven.compiler.source>15.0.2</maven.compiler.source>
<maven.compiler.target>15.0.2</maven.compiler.target>
<maven.compiler.compilerVersion>15.0.2</maven.compiler.compilerVersion>
<encoding>UTF-8</encoding>
</properties>
</profile>
配置建立本地的maven路径
大约54行左右配置本地的maven仓库
<localRepository>C:\Users\A2\Desktop\apache-maven-3.9.1-bin\apache-maven-3.9.1\repository</localRepository>
测试Maven
执行mvn --version,出现mvn的版本,代表maven安装成功
mvn --version
配置完成,运行mvn help:system测试,配置成功则本地仓库(C:\Users\A2\Desktop\apache-maven-3.9.1-bin\apache-maven-3.9.1\repository)中会出现一些文件。
首次执行 mvn help:system 命令,Maven相关工具自动帮我们到Maven中央仓库下载缺省的或者Maven中央仓库更新的各种配置文件到Maven本地仓库中。
mvn help:system
是 Maven 构建工具中的一个特定命令,它的主要作用是提供关于 Maven 运行环境的详细信息
mvn help:system
其它版本也是如此创建
参考链接:全站最全Maven下载安装配置教学(2024更新…全版本)建议收藏…赠送IDEA配置Maven教程-CSDN博客
idea创建maven项目(使用3.8.8)
1. maven配置
1.1 maven与idea关联
关闭项目,选择ALL settings.
配置Maven的home地址
配置本地settings文件地址
配置本地仓库地址
2.新建项目
新建一个maven项目。
Groupld:机构或者团体的英文,采用"逆向域名"形式书写。
Artifactld:项目名称,说明其用途,例如:cms、oa…
pom.xml:项目(Project)对象(Object)模型(Model)文件
3. java项目创建war项目
idea安装插件JBLJavaToWeb
点击JBLJavaToWeb
查看目录转换成功。
4. pom.xml初始说明
Groupld:机构或者团体的英文,采用"逆向域名"形式书写。
Artifactld:项目名称,说明其用途,产品线名-模块名。语义不重复不遗漏,例如:cms、oa…
version:版本号格式推荐:主版本号.次版本号.修订号
Packaging定义规则:
指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型。
packaging 属性为jar(默认值),代表普通的Java工程,打包以后是.jar结尾的文件
packaging属性为 war,代表Java的web工程,打包以后.war结尾的文件。
packaging属性为 pom,代表不会打包,用来做继承的父工程。
5.maven项目结构
6. tomcat部署项目
配置tomcat环境变量
CATALINA_HOME
C:\Users\A2\Desktop\apache-tomcat-8.5.99-windows-x64\apache-tomcat-8.5.99
path添加
%CATALINA_HOME%\bin
创建个index.html,并配置tomcat
6.1解决tomcat乱码问题
将logging.properties中java.util.logging.ConsoleHandler.encoding的UTF-8改为GBK
7. 启动项目
启动项目,编译后的文件放在target文件中
在项目目录下,cmd执行命令:
mvn clean 清理:清理编译后的文件(target文件)。
mvn compile 编译项目,生成target文件
mvn pachage:打包成war包
也可以通过可视化执行该命令
7.1 打包成war包
如果使用jdk17,打包war包报错,maven自带打包插件和jdk版本不匹配。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</build>
部署时,将war包放在tomcat文件下的webapps文件夹里,启动tomcat即可启动项目
指定打包名称
<build>
<finalName>定义打包名称</finalName>
</build>
8. maven依赖管理
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
<scope>compile</scope>
</dependency>
</dependencies>
maven jar包搜索:
Maven Central
Maven Repository: Search/Browse/Explore
自定义版本,方便日后版本修改 <log4jversion>1.2.17</log4jversion> ${log4jversion}取值
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- <自定义标签名>版本值</自定义标签名> -->
<log4jversion>1.2.17</log4jversion>
</properties>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4jversion}</version>
</dependency>
</dependencies>
9. 下载一半中断网络导致包未下载成功
在本地仓库搜索 lastxxx将其进行删除即可。
10.指定打包文件
如果在java文件夹中添加java类,会自动打包编译到classes文件夹下!
但是在java文件夹中添加xml文件,默认不会被打包!
默认情况下,按照maven工程结构放置的文件会默认被编译和打包!
除此之外、我们可以使用resources标签,指定要打包资源的文件夹要把哪些静态资源打包到 classes根目录下!
11. maven打包成jar包
Maven通过maven-shade-plugin插件输出Jar包,其中一个是原始代码,一个为带有其他插件的jar包合并到一个jar包中
<build>
<plugins>
<!-- 配置 maven-shade-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.example.PinyinTestor</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
使用mvn clean package去运行。
或者使用插件assembly-plugin
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.5</version>
<configuration>
<archive>
<manifest>
<mainClass>org.example.PinyinTestor</mainClass>
</manifest>
</archive>
<descriptorRefs>
<!-- all in one 在打包时将所有引用的jar包合并到输出的jar中 -->
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
点击红框内容
12.pom.xml中配置镜像仓库
如果不想全局配置,也可以在pom.xml中配置
配置阿里云插件仓库
<pluginRepositories>
<!-- 阿里云插件仓库 -->
<pluginRepository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</pluginRepository>
</pluginRepositories>
配置阿里云jar包镜像仓库
<repositories>
<!-- 阿里云插件仓库 -->
<repository>
<id>aliyun</id>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</repository>
</repositories>