一、前言
一般按要求下载jar ,但是jar 包版本不好控制。有时候就会jar版本不同导致项目运行的结果也有差异,这样在团队开发中,在多个项目开发的是,jar包还要进行拷贝,可能也会出现版本还jar损坏的情况,所以一个能统一管理jar包的工具出现了,就是Maven。
二、下载
它是apache公司的一款产品,和Tomcat类似的
官网:https://maven.apache.org/
下载地址:https://maven.apache.org/download.cgi
要注意一点,下载的版本要和本地的jdk还有IDE要匹配
我的idea是2019.2.4,下载的maven是3.6.3
下载 得到apache-maven-3.6.3-bin.zip文件 ,解压即可用
文件目录:
bin 执行文件
boot 启动项文件
conf 配置文件 (这里面有需要配置内容)
lib 运行所需要的jar包
签名文档运程仓库:在外面的服务器上面存放的jar包的地址,运程jar仓库
本地仓库:存在本地电脑上的jar
三、配置
* 在非中文的目录下,新建一个Maven的文件夹(E:\DevelopTools\maven)
把刚刚解压出来的Maven软件拷贝进去,目录是apache-maven-3.6.3
* 再新建一个repository 的文件夹
这个文件就下载存放jar的文件夹啊
* 配置初始化的内容
在Maven的conf目录下找到settings.xml配置文件夹
用编辑器打开
** 把原来默认国外的运程仓库,改为国内 推荐使用阿里,在settings.xml里面
在159行的<mirrors></mirrors>里面没有被注释的位置添加
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
** 修改本地默认仓库
在55行的没有注释的位置,添加刚刚配置repository 目录的绝对路径
<localRepository>E:/Program Files/maven/repository</localRepository>(注意斜杠)
** 修改JDK版本 改为1.8版本
在219行左右 没有注释的位置
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<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>
四、创建使用
使用idea新建一个Maven项目
打开idea > file > new > maven
-勾选Create from archetype
- 选择maven-archetype-webapp(javaweb 带界面在tomcat 走的项目)
拓展:maven-archetype-quickstart(java项目,一二阶段的那个项目)
>点击next
-填写 GroupId(包名com.baidu.***)
-填写 ArtifactId (项目名称)
-修改 Version为 1.0
>点击next
这里就是检查和查看工程配置的位置
如果是使用idea默认的Maven,那可以直接点击next 进入下一步
配置和默认的跟本地仓库,都在一个.m的文件夹下...
还可以配置自己的Maven:
-Maven home directory点击后面的文件夹图标,选择已经安装好的Maven的路径
选择到bin目录的上一级
-User settings file: 点击override 后,选择自己的Maven的setting的配置文件
-Local repository: 点击override 后,选择自己的本地仓库路径
>点击next
-确认工程名称
>点击finish 完成
注意:如果是第一次配置工程,加载会比较慢要耐心等待,进度条完成,特别是pom文件一开始没有很多内容,等待加载完成
这个过程要联网,不能断开
如果断开,有可能下载报错,如果报错打开本地仓库文件夹,并清空在idea的右侧有一个Maven的选项,点击打开,找里面左上角一个刷新的标签,重新下载
或者左侧展开工程右键pom.xml 》maven 》Reimport
初始化项目
部分配置和处理bug的参考是我这篇文章:tomcat安装、配置、IDE使用(附解决Cannot locate document:)_ide安装tomcat_牛大了2022的博客-CSDN博客
* 项目初始化
在src/main文件下新建一个resources(放配置文件)和java (java代码)的文件夹
-右键java文件夹 》Mark Directory as 》Sources Root
-右键resources文件夹 》Mark Directory as 》 Resources Root
* 修改web.xml 清空原有内容,
写入:3.1版本
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID"
version="3.1">
</web-app>
* 删除 name 和 url
* 修改properties配置 ,1.7 改为1.8
<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>
</properties>
* 删除pluginManagement 里面的所有内容
* 在build标签里面添加配置信息
之前的java项目中项目打成jar的时候,我们图片和音乐和配置文件,不会被打包进去
那么可以通过以下配置,把这些文件打包起来
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
# 添加依赖
就是其他的jar的配置加入到pom
<dependencies> 所有依赖都是写这里面
依赖的格式
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
如果获取他的依赖
在 这个网站 https://mvnrepository.com/ 搜索对应的jar的名字,然后选择版本
拷贝 Maven 的依赖,粘贴到pom.xml文件中
一开始是会报错,没关系,右下角会提示import Changes 点击等待下载即可
配置运行
idea的右上角点击Add Configuration.. 弹窗运行配置
-点击左上角的“+”
-下拉找到Tomcat server > local
-输入name 一般是项目名
-点击Deployment
-点击右边的“+”
-选择第一个Artifact...
-选择长的那个****项目名:war exploded
-点击OK
-修改Application context:为/
-点击Server
修改On 'Update' action: 为Update classes and resources
修改On frame deactivation:为Update classes and resources
点击右上角运行(浏览器:http://localhost:8080/)
遇到的小bug:第一次启动发现8080被占用了,参考我tomcat那篇把占用8080的线程关了即可。