Maven:基础知识
创始人
2024-05-24 17:06:09
0

Maven

  • 概念图
  • 生命周期
  • 目录
  • 工程创建
    • 测试
  • 常用命令
    • COMPILATION ERROR : 不再支持目标选项 5。请使用 7 或更高版本。
    • 问题解决
  • pom.xml文件
    • properties配置示例
    • scope配置详解

概念图

在这里插入图片描述

  • 依赖管理
  • 构建项目
  • Maven 的底层核心实现项目的构建和管理必须通过插件完成,但插件本身并不包含在其核心程序当中。

生命周期

在 Maven 中,它拥有三套标准的生命周期,分别为CleanLifeCycle、DefaultLifeCycle 和 SiteLifeCycle 。每一套生命周期互相独立、互不影响。另外,每套生命周期包含一系列的构建阶段,这些阶段是有顺序的,会按照顺序执行(即执行后面的阶段会先自动执行前面的阶段)。

  • CleanLifeCycle:清理的生命周期
  • DefaultLifeCycle:默认的生命周期
  • SiteLifeCycle:站点的生命周期

目录

在 Maven 中,所有文件的存放目录都有明确的约定。标准目录结构如下:

目录名含义
项目根/项目目录根
pom.xml项目对象模型(Project Object Model),Maven项目中的文件
src/源代码目录根
main/项目主体目录根
java源代码目录
resources所需资源目录
filters资源过滤文件目录
assemblyAssembly descriptors
config配置文件目录根
test/项目测试目录根
java测试代码目录
resources测试所需资源目录
filters测试资源过滤文件目录
site与site相关的资源目录
target/输出目录根
classes项目主体输出目录
test-classes项目测试输出目录
site项目site输出目录

工程创建

创建的工程分为两类:一是Java项目,二是Web项目。创建命令如下:

<1>. Java项目:

mvn archetype:generate -DgroupId=JavaProjectPackage -DartifactId=JavaProjectName -DarchetypeArtifactId=maven-archetype-quickstart

<2>. Web项目:

mvn archetype:generate -DgroupId=WebProjectPackage -DartifactId=WebProjectName -DarchetypeArtifactId=maven-archetype-webapp

其中,属性含义:
-DgroupId:包名
-DartifactId: 项目名
-DarchetypeArtifactId: 项目类型
注: 一定要按照标准目录结构来构建工程。

测试

我们先使用命令行窗口在桌面上对 Maven 项目进行创建。步骤如下:

打开命令行窗口,进入桌面,输入命令:

//1.Java项目
mvn archetype:generate -DgroupId=cn.edu.MavenStudy -DartifactId=MavenJavaProjectTest -DarchetypeArtifactId=maven-archetype-quickstart//2.Web项目
mvn archetype:generate -DgroupId=cn.edu.MavenStudy -DartifactId=MavenWebProjectTest -DarchetypeArtifactId=maven-archetype-webapp

若是第一次创建,需要耐心等待 Maven 下载相应资源到本地仓库上(repository 文件)。如图:

在这里插入图片描述

所需的资源,如图:

在这里插入图片描述

再创建Web项目,如图:

在这里插入图片描述

常用命令

命令作用
mvn compile编译,将源代码编译成字节码文件(.class)
mvn clean清除,删除编译的目标文件target
mvn test测试,运行test包下的单元测试类(其方法名约定为XxxxTest)
mvn package将项目打包,文件存储在项目根目录的target目录中(Java项目打包成 jar文件,Web项目打包成 war文件)
mvn install将一个工程打包成 jar文件,存储在本地仓库里
mvn deploy若有私服,打包后上传到私服
mvn source:jar源码打包
mvn dependency:sources下载 jar包的源代码
mvn site查看报告和操作流程

COMPILATION ERROR : 不再支持目标选项 5。请使用 7 或更高版本。

在使用命令过程中,遇到了错误,如图:

在这里插入图片描述

原因:JDK版本不匹配。

问题解决

首先,打开命令行窗口,输入命令:java -version ,查看版本信息。如图:

在这里插入图片描述

找到 Maven/apache-maven-3.8.6/conf 目录下的 settings.xml 文件进行修改配置:

//根据本机JDK版本,添加以下配置:
  jdk-16.0.2true16UTF-8161616  

如图:

在这里插入图片描述

再次使用命令,成功执行。如图:

在这里插入图片描述

pom.xml文件

pom.xml为当前Maven项目配置文件,定义项目的基本信息,用于描述项目的maven坐标,依赖关系等。

一般情况下,Maven是通过groupId、artifactId、version这三个元素值(俗称坐标)来检索该构件, 然后引入工程。若要引用项目(已开发完毕并发布到远程仓库),则在pom.xml文件中新建一个dependency节点,将本项目的groupId、artifactId、version写入, Maven便会把jar包下载到本地 。接下来,简单介绍pom.xml文件。

4.0.0cn.edu.MavenProjectMavenJavaProject1.0.0-SNAPSHOTjar4.11...org.apache.commons commons-lang3 3.8.1 testfalseorg.slf4jslf4j-apiProjectNamemaven-clean-plugin3.1.0           execution-idpackagedemo-goalfalse    		  truerepository-id repository-namefile://${basedir}/target/deploy             repository-id			repository-namerepository-url

properties配置示例



4.11

junitjunit${demo.version}test

scope配置详解

maven认为,程序对外部的依赖会随着程序的所处阶段和应用场景而变化,所以maven中的依赖关系有作用域(scope)的限制。
scope值如下:

  • compile(编译范围):默认值,表示被依赖项目需要参与项目的编译、测试、运行、打包、发布。
  • runtime(运行时范围):表示被依赖项目不参与项目的编译。
  • test(测试范围):表示被依赖项目仅参与项目测试相关的工作(包括测试代码的编译和执行,但不会被打包和部署)。
  • provided(已提供范围):表示被依赖项目参与项目的编译、测试和运行,而其他依赖由JDK或容器提供。
  • system(系统范围):与 provided 相似,但不依赖Maven仓库,而是必须使用systemPath属性指定本地文件系统获取。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...