持续学习&持续更新中…
守破离
Maven_安装_配置_常用操作 + IDEA与Maven
下载Maven
-
进入https://www.apache.org/官网
-
下拉至网页底部,点击Maven
安装Maven
环境变量的配置
- 1 将下载好的Maven和Tomcat一样,直接解压,然后放至没有中文的路径下:
- 2 配置环境变量
在cmd窗口中键入mvn -v
,出现如下界面说明Maven配置安装成功。
初始化配置
修改Maven项目的JDK版本
方法1
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.compilerVersion>8</maven.compiler.compilerVersion>
方法2
方法3
<profile>
<id>jdk8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>8</jdk>
</activation>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.compilerVersion>8</maven.compiler.compilerVersion>
</properties>
</profile>
使用命令行创建 Maven 普通 项目
方式一
- 1 打开cmd,cd到想要创建项目的目录下
- 2 在命令行中键入:
mvn archetype:generate
第一次运行某些mvn命令,会去初始化下载很多东西。之后就不会了。
- 3 键入
ctrl+c
然后输入Y
,让Maven停止去**中央仓库**
下载东西。(Maven会默认下载文件到**C:\Users\username\.m2\repository**
文件夹下面)
- 4 如果不想让其下载到c盘,想更改下载路径的话,操作如下步骤:
① 删除之前的.m2文件,然后找到Maven解压目录下的conf/settings.xml
文件
② 修改settings.xml文件中的内容:
修改默认仓库路径:
<localRepository>D:/my_maven_repo/repository</localRepository>
- 5 设置镜像
在settings.xml中找到mirrors
标签,然后添加如下内容:
<mirror>
<id>aliyun</id>
<mirrorOf>central</mirrorOf>
<name>aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
-
6 再次键入
mvn archetype:generate
,让其去初始化下载。 -
7 初始化下载完成后,选择项目类型,敲回车即可(默认选择7)
-
8 group id(组织名称、公司域名、包名):coder.lp
-
9 artifactId(项目名):hello_world
-
10 版本号、package默认选项,一直敲回车,最后输入Y即可。
出现上图表示一个普通的Maven项目创建成功。
方式二
mvn archetype:generate –DgroupId=programmer.lp –DartifactId=hello_test –Dversion=1.0-RELEASE –DarchetypeGroupId=org.apache.maven.archetypes –DarchetypeArtifactId=maven-archetype-quickstart
使用命令行创建Maven Web 项目
方法一
-
1 键入
mvn archetype:generate
-
2 选择项目类型:10
-3 输入groupId、artifactId、然后一直敲回车。
方法二
在命令行输入:
mvn archetype:generate –DgroupId=programmer.lp –DartifactId=hello_webtest –Dversion=1.0-RELEASE –DarchetypeGroupId=org.apache.maven.archetypes –DarchetypeArtifactId=maven-archetype-webapp
IDEA配置Maven
可以根据自己的需要来配置IDEA的Maven,比如让IDEA使用自己下载安装好的Maven:
IDEA导入Maven项目
IDEA运行Maven指令
方式一
在导入成功后IDEA右侧的Maven选项卡
方式二
方式三
打开Terminal终端,然后进入项目所处目录,执行自己手动打开cmd一样的操作
IDEA新建Maven 普通项目
IDEA新建Maven Web项目
方法1
上述方式(勾选Create from archetype)创建Maven项目,pom.xml中会有很多冗余配置,生成一些不必要的东西。因此不建议使用。推荐使用下述方法2
方法2
pom.xml配置中,只要配置上<packaging>war</packaging>
就代表该项目是一个web项目。
pom.xml配置:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>programmer.lp</groupId>
<artifactId>nine_myself</artifactId>
<version>1.0.0</version>
<!-- 声明该项目为一个web项目-->
<packaging>war</packaging>
<properties>
<!-- setting.xml中已经配置过了 -->
<!-- <maven.compiler.source>8</maven.compiler.source>-->
<!-- <maven.compiler.target>8</maven.compiler.target>-->
<!-- 声明文件编码 & 解决Maven打包中文乱码问题 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.8</version>
</dependency>
</dependencies>
<build>
<!-- 使用IDEA部署Tomcat就不用在pom.xml中配置Tomcat插件了 -->
<finalName>nine_myself</finalName>
</build>
</project>
注意:使用Maven依赖Servlet时需要加上scope provided
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
在IDEA2021中Reimport就是Reload
Maven配置Tomcat插件
配置Tomcat插件的目的是:通过Maven中的Tomcat插件来部署项目到Tomcat服务器
使用Maven内置的Tomcat7
Tomcat8之前get请求乱码问题解决
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/test</path>
<port>8080</port>
<!-- Tomcat8之前get请求request.setCharacterEncoding("UTF-8")会导致乱码问题 -->
<!-- 原因在于浏览器会自动对uri进行编码操作 -->
<!-- 而Tomcat8之前Tomcat不会自动对uri进行解码操作,所以需要配置一下让其去对uri进行解码 -->
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
使用自己安装的Tomcat9
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/test</path>
<!-- 默认不写就是8080 -->
<!-- <port>8080</port> -->
<!-- Tomcat8之前get请求request.setCharacterEncoding("UTF-8")会导致乱码问题 -->
<!-- 原因在于浏览器会自动对uri进行编码操作 -->
<!-- 而Tomcat8之前Tomcat不会自动对uri进行解码操作,所以需要配置一下让其去对uri进行解码 -->
<uriEncoding>UTF-8</uriEncoding>
<update>true</update>
<url>http://localhost:8080/manager/text</url>
<server>tomcat9</server>
</configuration>
</plugin>
上述两种Maven配置Tomcat插件部署项目的方式都很麻烦,推荐使用IDEA来部署Tomcat。
生成Runnable Jar
方法1
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib</classpathPrefix>
<mainClass>programmer.lp.Main</mainClass>
</manifest>
</archive>
<finalName>hellojava</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<!-- <phase>package</phase> -->
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- ${project.build.directory}就相当于target目录 -->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
方法2
方法3
方法4
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.0.RELEASE</version>
<executions>
<execution>
<!-- <phase>package</phase> -->
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<mainClass>com.mj.Main</mainClass>
<finalName>hellojava</finalName>
<!-- 将scope system类型的本地Jar也打包的话需要加上这一句 -->
<includeSystemScope>true</includeSystemScope>
</configuration>
</execution>
</executions>
</plugin>
常见问题解决
解决文件编码警告&Maven打包中文问题
通过Maven打包项目,默认情况下打包遇到中文就会出现乱码问题,使用该属性<project.build.sourceEncoding>
就可以解决该问题。
该属性也可以解决文件编码警告问题。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
解决IDEA控制台输出乱码
-Dfile.encoding=GBK
找不到依赖包
一些细节
-
阿里云Maven镜像可用可不用(不推荐使用)
-
一般都推荐加上
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
声明文件编码,解决Maven打包中文乱码问题。 -
修改Maven项目的JDK版本推荐使用方法3,以后就不用在每个项目的pom.xml文件中添加属性了。
-
使用IDEA部署Tomcat就不用在pom.xml中配置Tomcat插件了
-
推荐在
<build>
下添加<finalName>nine_myself(context path)</finalName>
,将打包生成的文件命名为context path -
使用Maven依赖Servlet时需要加上scope provided
-
Tomcat8之前需要在pom.xml的Tomcat插件中配置如下:
<uriEncoding>UTF-8</uriEncoding>
,详见Maven配置Tomcat插件
参考
李明杰: Java从0到架构师②JavaEE技术基石.
本文完,感谢您的关注支持!