2021-11-10 14:48

maven安装配置及使用说明

王姐姐

JavaEE

(1688)

(0)

收藏

1 maven项目管理和项目自动构建工具,apache的顶级项目

1F5530DE-7597-488d-A558-4A7E06C10AB7.png

2 官网下载:maven.apache.org

  解压,比如解压到D盘根目录  在maven的conf文件夹下有个settings配置文件,主要配置仓库的位置(一般不采用默认的,默认的位置为:C:\Users\Administrator\.m2,Administrator为当前系统),中央仓库的镜像(一般使用aliyun的国内镜像)和默认的profile

3 配置环境变量

3.1 Java_HOME指向jdk的安装目录,比如为:C:\Program Files\Java\jdk-17.0.1

3.2 MAVEN_HOME执行maven主目录,比如为:D:\apache-maven-3.8.3

3.3 MAVEN_OPTS 比如为:

-Xms128m -Xmx512m -Duser.language=zh -Dfile.encoding=UTF-8 -DarchetypeCatalog=internal

3.4 编辑环境变量PATH,添加%JAVA_HOME%\bin和%MAVEN_HOME%\bin

3.5 配置好后,打开cmd,执行mvn -v检查 出现jdk和maven的版本信息就配置好了

C2873477-CAB3-4933-8720-42B3FE305EE3.png

4 maven仓库  项目从本地仓库获得依赖,本地仓库没有到中央仓库下载,公司内部可能会有maven私服,本地仓库没有则到私服下载依赖,私服没有去中央仓库下载

5 maven项目结构

  src/main/java存放源代码

  src/main/resources 存放配置文件

  src/test/java存放测试源代码

  src/test/resources 存放测试专用的配置文件,一般用不到该文件夹


  对web项目,src/main/webapps为web文件夹,存放WEB-INF及各种jsp及静态资源文件

D7D92ADD-8BE3-4fc0-9967-78EC814514C8.png

6 注意在eclipse下创建的Dynamic Web Project,web.xml不对,版本太低了,需要换高版本的:

<?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_4_0.xsd"
         version="4.0">
</web-app>

7 maven坐标

  组id,相当于哪个项目组

  构件id,也就是哪个功能模块,

  版本 SNAPSHOT为快照版本,RELEASE为发行版本

  打包方式 不指定默认为jar,web项目war,多模块父项目pom

C5F15459-4AB8-4d2a-8F62-2652EBECCF4C.png

  根据maven坐标查找依赖,依赖查找最好的网站是mvnrepository.com一般搜索都是第一个结果就是想要找的,特例jstl是第二个



8 pom文件,项目对象模型文件,目前版本为4.0.0  

9 maven依赖常见4种范围:

9.1 默认范围compile,在编译,测试及正式运行时都起作用

9.2 test范围,在测试编译及运行时起作用

典型:junit spring-test

9.3 runtime范围,在编译时用不到,在测试运行及正式运行才能用到

典型:数据库jdbc jar

9.4 provided范围,已提供范围,在正式运行用不到


在对项目打包时,test范围和provided范围的依赖不会打到包中

10 依赖传递

compile范围和runtime范围的依赖会进行依赖传递,如果设置了

<optional>true</optional>也不会进行依赖传递


添加依赖时,同层级的,添加了相同的依赖但是不同的版本,

顺序在后面的会覆盖前面的


因为依赖会进行传递,a->b->c   d->c  层级小的优先,也就是d依赖传递的c起作用

假如,想让a->b->c起作用,需要对d传进来的C要进行排除,阻止d传递c

    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.4</version>
      <exclusions>
        <exclusion>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

11 maven 常用命令

clean清理target

test 测试

package 打包

12 tomcat配置

Edit Configurations....

-》左上角的+号

-》tomcat server 选择Local

-》弹出的选项卡中,选择第二个deployment->+号,选择artifact-》选择xxx:war exploded

   可以修改application context项目根路径

-》第一个选项卡server,配置默认浏览器,On 'Update' action和Onframe deactivation都设为Update classes and resources,选中Deploy applications configured in Tomcat instance

0717B12B-55CC-46e1-9016-E1BB0F46322C.png

FC1D19C6-4214-49ed-A6C8-E7771485F96E.png

0条评论

点击登录参与评论