【JavaWeb】Maven(学习笔记)

2023-12-25 06:04:12

一、Maven概述

1、Maven

Maven 是一个项目管理工具

2、Maven解决的问题

  1. jar 包问题
  2. 编译
  3. 测试
  4. 运行
  5. 打包

3、Maven的组成

  1. 项目对象模型 :pom.xml
  2. 标准集合:目录结构标准
  3. 一个项目生命周期(Project Lifecycle)
  4. 依赖管理系统:通过配置文件管理
  5. 用来运行定义在生命周期阶段中插件目标的逻辑

4、Maven目录介绍

  1. bin:核心命令
  2. boot:启动器
  3. conf:配置文件
  4. lib:依赖jar包

5、Maven仓库

  1. 仓库:用于存放jar包
  2. 分类
    1. 本地仓库:本地缓存
    2. 远程仓库:私服
    3. 中央仓库:Maven的jar包服务器

6、Maven工程结构

  1. src:源码
    1. main:主工程代码
      1. java :主工程代码
      2. resources:配置文件
      3. wabapp:web项目的资源目录(jsp/html/WEB-INF…)
    2. test:测试代码
      1. java :主工程代码
      2. resources:配置文件
  2. pom.xml:配置文件

二、Maven命令

  1. compile 编译:将 src/main/java 下的文件编译为 class 文件输出到 target目录下
  2. test 测试:执行 src/test/java 下的单元测试类
  3. clean 清理:删除 target 目录及内容
  4. package 打包
    1. jar 包:java 工程
    2. war包:web 工程
    3. pom包
  5. install 安装:将 maven 打成 jar 包或 war 包发布到本地仓库

三、Maven生命周期

  1. 清理
  2. 编译
  3. 测试
  4. 打包
  5. 安装
  6. 部署

同一套生命周期中,执行后边的操作,会自动执行前面的操作

四、Maven坐标

1、坐标格式

  1. 项目名称,定义为组织名+项目名,类似包名
    <groupId>com.itheima</groupId>
  2. 模块名称
    <artifactId>hello_maven</artifactId>
  3. 当前项目版本号
    snapshot 为快照版本即非正式版本,release 为正式发布版本
    <version>0.0.1-SNAPSHOT</version>
  4. <packaging> :打包类型
    1. jar:执行 package 会打成 jar 包
    2. war:执行 package 会打成 war 包
    3. pom :用于 maven 工程的继承,通常父工程设置为 pom
<dependency>
	<groupId>com.itheima</groupId>
    <artifactId>hello_maven</artifactId> 
    <version>0.0.1-SNAPSHOT</version>
    <scope>provided</scope>
</dependency>

2、插件

<!--设置编译版本为 1.8-->
</build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
            <encoding>UTF-8</encoding>
        </configuration>
    </plugin>
</plugins>
</build>

3、依赖范围

依赖范围编译测试运行例子
compileYYY
test-Y-Junit
providedYY-servlet-api
runtime-YYJDBC
systemYY-

文章来源:https://blog.csdn.net/wmh1024/article/details/135090991
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。