首页 > 其他分享 >Maven

Maven

时间:2023-04-12 22:35:41浏览次数:46  
标签:依赖 项目 仓库 jar darksnow Maven

1.Maven简介

官方的解释:

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。

Maven两大核心

  1. 依赖管理:就是对jar包的统一管理
  2. 构建项目:项目编码完成后,对项目的编译,测试,打包,部署等操作
    初学的时候对Maven的概念比较模糊,仅仅知道它可以管理我们的jar包和jar之间的依赖关系,但它的功能并不仅仅局限于此。我们通过安装使用管理来体验吧。

2.Maven的安装配置

2.1 官网下载

官网地址:https://maven.apache.org/download.cgi

下载Windows版本即可

1675666132664

2.2 解压缩

将下载的压缩文件解压缩到非中文目录下即可。

1675666202221

2.3 配置Maven的环境变量

先配置MAVEN_HOME

1675666321214

然后将MAVEN_HOME追加到path变量之后

1675666358502

2.4 验证

环境变量配置好后,我们就可以在系统的任意位置来使用Maven了

1675666412734

3.仓库类型介绍

仓库类型 说明
本地仓库 程序员自己电脑上的仓库
私服仓库 局域网中的仓库 速度比中央仓库要快
中央仓库 在互联网中,由Apache团队维护,包含了基本所有的jar包,版权原因不包含Oracle的

jar包查找的顺序:

1675666598732

中央仓库地址:https://mvnrepository.com

注意:在中央仓库找到jar包就会下载到本地仓库,下次再用的时候就会从查找本地仓库,很快捷

4.本地仓库配置

修改我们在Maven的配置文件

image-20230214155552919

image-20230214155909080

修改中央仓库的地址

<!-- 
	阿里代理镜像地址
	以后maven在本地仓库没有找到的jar包就会去阿里云代理镜像地址的这个中央仓库中去找
-->
<mirror>
	<id>alimaven</id>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOf>*</mirrorOf>
</mirror>

4.创建基于Maven的Web项目

选择相关的类型

image-20230214164857111

设置项目的相关信息

image-20230214165150565

image-20230214165355384

image-20230214165546946

创建缺少的目录

image-20230214170031492

image-20230214170246616

Tomcat插件配置

<plugin>
	<groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<version>2.2</version>
	<configuration>
		<port>8080</port> <!-- 访问端口-->
		<path>/</path> <!-- 访问路径-->
	</configuration>
</plugin>

启动tomcat

image-20230214170642671

image-20230214171024861

image-20230214171302624

5.依赖管理

Maven项目,依赖,构建配置,以及构件:所有这些都是要建模和表述的对象。这些对象通过一个 名为项目对象模型(Project Object Model, POM)的XML文件描述。这个POM告诉Maven它正处理什么类型的项目,如何修改默认的行为来从源码生成输出。同样的方式,一个Java Web应用有一个web.xml文 件来描述,配置,及自定义该应用,一个Maven项目则通过一个 pom.xml文件定义。该文件是Maven中一个项目的描述性陈述;也是当Maven构建项目的时候需要理解的一份“地图”。

5.1 Maven坐标

<dependencies>
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>4.11</version>
		<scope>test</scope>
	</dependency>
</dependencies>

<!-- 
1.在dependencies标签中添加需要添加的jar包对应的Maven坐标。

2.一个dependency标签代表了一个Maven坐标。

3.groupId:团体、公司、小组、项目、或其他团体标识的体现,约定以创建这个项目的组织域名(比如:www.baidu.com,这就是域名)倒写开头。也是我们在本地仓库中查看依赖的目录结构。一个Maven坐标中是必须有的。

4.artifactId:在groupId下的表示一个单独的项目的唯一标识。同样是必须的。

5.version:一个项目的特定版本。也是必须的
--> 

注意

scope代表依赖范围

依赖范围 编译有效 测试有效 运行时有效 打包有效 例子
Complie spring-core
test × × × Junit
provided × × servlet-api
runtime × JDBC驱动
system × × 本地maven仓库之外的类

5.2 依赖冲突

image-20230215083447836

image-20230215083900974

5.3 依赖冲突的解决

第一优先声明原则

谁先定义的就使用谁的

image-20230215084252900

image-20230215084402323

路径就近原则

直接声明,那么优先级会更高

image-20230215084758338

排除依赖

可以通过exclusions标签来排除依赖

image-20230215085241671

6.聚合工程

聚合工程,实际上就是对项目分模块,互联网项目一般按照业务来分(订单模块,支付模块,.......),传统项目,大多采用分层的方式(controller,service,dao)

6.1 聚合工程的结构

darksnow-parent 		pom(顶级父工程,管理)  ---  project
    darksnow-manager	pom		---   module
    	darksnow-manager-dao			jar
    	darksnow-manager-service		jar
    	darksnow-manager-model			jar
    	darksnow-manager-commons		jar
    	darksnow-manager-controller		war

image-20230215092811076

image-20230215092932858

image-20230215094526128

image-20230215094620160

标签:依赖,项目,仓库,jar,darksnow,Maven
From: https://www.cnblogs.com/lkj1223456/p/17311567.html

相关文章

  • IDEA Java项目中Maven Lifecycle功能
    功能点clean用于清除之前构建生成的所有文件,具体为清除Target目录中的所有文件,包括该目录删除了install生成的所有文件。validate用于验证项目是否正确,并且说必要的信息是否都可用。compile编译项目的源代码,主要是Java文件。test编译和运行测试代码。p......
  • idea配置maven
    1)选择File-->Settings(配置当前的项目)选择File-->OtherSettings(配置以后新创建的项目) 2)   选择Build,Execution,Deployment-->BuildTools-->Maven    3)  配置以下三项信息:Maven的主目录,配置文件settings.xml和本地仓库repository目录  4)......
  • maven打包时报错:找不到符号,errors提示:符号:类 xxx位置:程序包 xxx.xxx
    原因分析:找不到符号要么就是有些依赖没有,有些依赖没识别到。要打包的项目依赖本地其他模块出现这种情况比较多,没有识别到或者找不到,那就重新安装要依赖的本地模块就好了。解决方案:第一步确认找不到的依赖是什么。在日志里可以查看,errors提示:符号:类xxx位置:程序包xxx.xxx。......
  • Eclipse IDE -maven,安装配置说明,实际操作
     实际操作步骤:1网站下载https://maven.apache.org/  官网地址    2文件路径存放和配置环境变量2.1新建一个maven目录,并将下载文件解压到当前目录,如图所示:   2.2 配置环境变量,新建一个MAVEN_HOME,值为:D:\maven\apache-maven-3.9.1,如下图所示:   ......
  • 多模块maven 打包异常
    聚合工程maven打包异常Non-resolvableparentPOMforxxx[WARNING]'version'containsanexpressionbutshouldbeaconstant.取消父工程版本中的属性值,替换成指定的常量<!--项目描述(异常)--><groupId>com.smile</groupId><artifactId>livechat</artifac......
  • Maven 资源导出问题
    <!--在build中配置resources,来防止我们资源导出失败的问题--><build><resources><resource><directory>src/main/resources</directory><excludes><exclude>*......
  • Java for Web学习笔记(三):Servlet(1)Maven
    什么是Maven在http://maven.apache.org/中对Mavent进行介绍,可以:一、发布project信息二、管理Jar包三、提供uniformbuildsystem,使用POM(projectobjectmodel)如果我们使用Eclipse是最新的Mars版本,Maven已经集成进来,所以不需要进行额外的配置,当然,如果我们需要自行安装一个特定位......
  • [Maven] 笔记
    Maven管理和构建Java项目的工具,同类的还有Gradle、Ant等提供了什么:标准化的项目结构标准化的构建流程编译>测试>打包>发布依赖管理机制标准项目结构更快捷的编译,打包依赖管理机制直接在pom.xml中添加依赖坐标后会自动将jar包和插件部署在lib中不......
  • Tomcat的Maven插件
    <build><plugins><plugin><!--tomcat插件--><groupId>ch.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</art......
  • Jenkins Maven Java项目
     [root@localhost~]#catx2.sh#!/bin/bashrm-rfjavawebappname=$1pid=`ps-ef|grep$appname|grep'java-jar'|awk'{printf$2}'`echo$pidif[-z$pid];thenecho"$appnamenotstarted"else......