首页 > 其他分享 >简单了解 Maven,其实这一篇就够了!

简单了解 Maven,其实这一篇就够了!

时间:2023-12-17 15:06:30浏览次数:33  
标签:xml 依赖 一篇 项目 配置 jar 就够 Maven

一、Maven
  1. Maven是什么?Maven 是一个跨平台的项目管理工具。
  2. 作用:
  • 基于Java平台的项目的构建、依赖包管理和项目信息管理
  • 对项目提供一种依赖配置,配置好的项目,Maven会自动从我们设置的仓库中下载和管理jar包
  • Maven也提供了一种标准的项目目录结构,通过这种约定,大大减少了不同项目的学习成本
  1. 运行原理
  • 当我们在项目中配置依赖信息后,Maven会先从本地仓库查找是否存在相应的jar包,如果不存在则从镜像服务器(前提是在setting.xml中配置了)中下载jar包,如果镜像私服也没有,则从中央仓库进行下载。

简单了解 Maven,其实这一篇就够了!_jar包

  1. 常用命令

命令

说明

mvn compile

编译项目

mvn clean

清除项目的target

mvn test

测试

mvn package

打包

mvn install

打包,本地仓库也会放一份

  1. Maven 项目树状结构图

简单了解 Maven,其实这一篇就够了!_maven_02

  1. Maven中的坐标
  • 作用:标识项目或者依赖在仓库中的位置。
  • groupId:项目名称,一般使用公司域名倒写,唯一标识某一家公司
  • artifactId:Maven项目或模块名,区分同个公司不同项目
  • version:项目版本,区分同个项目不同时期版本
  1. 依赖
  • scope
  • compile:默认,所有阶段
  • provided:编译和测试阶段使用
  • runtime:测试和运行阶段使用
  • test:测试阶段使用
  • 传递性:自己创建的项目依赖配置的jar包,配置的jar包可能依赖自身其它jar包,比如spring
二、Java Web转Maven项目
  1. 右击项目名,选择Add Framework Support

简单了解 Maven,其实这一篇就够了!_jar包_03

  1. 勾选Maven,点击OK,项目就变成了maven项目结构,并生成maven项目中的src目录和pom.xml文件

简单了解 Maven,其实这一篇就够了!_jar包_04

  1. 将原先项目根目录下resources中的所有配置文件挪到src/main/resources下

这里提醒一下,如果直接挪动,可能会导致有的文件夹没有挪过去,所以建议右击目录后选择Show in Explorer,通过系统自带的文件资源管理器进行操作

简单了解 Maven,其实这一篇就够了!_maven_05


  1. 在src/main目录下创建webapp文件夹,然后备份或记录web/WEB-INF/lib中的jar(目的是为了方便后面添加依赖),之后将lib整个文件夹删除,再将web下的所有文件夹挪到刚刚创建好的webapp中

同理,测试相关的文件也可以挪到src/test/java目录下,这里就不演示了

简单了解 Maven,其实这一篇就够了!_maven_06


  1. 接下来就是删掉那些不再需要的目录,比如out、resources、test、web(resource是根目录下那个,别乱删哈)
  1. 最后一步:添加依赖!拿出刚刚备份的jar或记录的jar包信息,然后在pom.xml文件中进行添加,推荐复制jar文件名,然后到

这里强调一下,由于普通的web项目可能没有配置maven的本地库信息,所以需要配置一下,否则,加载依赖会很慢很慢很慢...

简单了解 Maven,其实这一篇就够了!_maven_07

弄好上面那些,我们就可以运行啦!\_\

三、小问题
Problem 1:

描述:启动项目后,访问资源时控制台打印如下信息:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation

简单了解 Maven,其实这一篇就够了!_maven_08

原因:配置依赖时指定了只能测试时使用

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
    <scope>test</scope>
</dependency>

解决方法:删除<scope>test</scope>

Problem 2:

点开idea右侧Maven,发现项目名有红色波浪线

简单了解 Maven,其实这一篇就够了!_maven_09


原因:Maven安装目录的conf/setting.xml文件中有多个mirrors标签(这里为了方便演示将多个mirrors标签一起,实际中可能不是紧挨在一起,可以通过查找该标签确认)

简单了解 Maven,其实这一篇就够了!_maven_10

解决方法:删除mirrors标签,只保留一个


Problem 3

描述:启动项目时,出现以下错误信息:不再支持源选项 5。请使用 7 或更高版本。

简单了解 Maven,其实这一篇就够了!_xml文件_11

原因:没有指定项目编译运行版本,而Maven默认配置的版本比较低,所以就报错喽

解决方法:在pom.xml中添加以下配置信息

<packaging>war</packaging>
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>


标签:xml,依赖,一篇,项目,配置,jar,就够,Maven
From: https://blog.51cto.com/u_15158840/8861344

相关文章

  • maven推送离线jar包
    一、修改maven的settings.xml文件<servers><server><id>maven-releases</id><username>admin</username><password>admin</password></server></servers>二、生成脚本packagecom.......
  • 宝藏知识!一篇文讲透关于站点SEO的事
    在当今数字化时代,拥有一个强大的网站对于企业和个人而言至关重要。然而,仅仅拥有一个漂亮的网站还不够,它还需要被搜索引擎充分认可和展示。这就是为什么站点SEO(搜索引擎优化)变得如此重要的原因。站点SEO是一系列技术和策略,旨在提升一个网站在搜索引擎结果页面(SERPs)中的排名。通过优......
  • 选择好用的CRM系统有哪些技巧?看这篇就够了
     市场上有着众多的CRM客户关系管理系统,从中选择一个适合自己企业的系统并非易事。除了需要了解自己的业务需求之外,还需要对市场上CRM系统的区别有一定的了解。不同的CRM系统各有特点,但有一些通用的标准可以用来评估它们的适用性。那么,如何判断CRM客户管理系统哪个好用?问题一:评......
  • kubesphere 的 流水线maven 模板缺少 kubectl解决
    最开始解决方案是maven的pod里通过在线下载kubectl命令 发现每次构建后端服务,都去官网下载kubectl命令相当慢。既然用到maven模板,遂将master节点的kubectl命令通过hostpath挂载到maven的pod模板里面。问题解决。 agent模板cm配置【jenkins-casc-config】在【kubes......
  • C语言入门这一篇就够了(入门篇1)
    C语言是什么C语言是一种广泛使用的通用编程语言,它是由美国计算机科学家DennisRitchie于1972年在贝尔实验室开发出来的。C语言的设计原则是让程序员有更多的自由度,以方便控制硬件,从而提高程序的运行效率。它支持结构化编程、词汇变量作用域和递归等功能,并且可以直接访问物理内存地......
  • 【Centos】Centos 7.6 安装 Maven 3.6.3
    1  前言继续安装我们的Maven3.6.3,为了给安装Nacos做铺垫。https://archive.apache.org/dist/maven/maven-3/2 安装步骤2.1 下载压缩包wgethttps://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz2.2 解压缩tar-zx......
  • 面向对象编程,看这篇就够了
    一、面向对象编程的概念面向对象编程,是一种程序设计范式,也是一种编程语言的分类。它以对象作为程序的基本单元,将算法和数据封装其中,程序可以访问和修改对象关联的数据。这就像我们在真实世界中操作各种物体一样,比如我们可以打开电视、调整音量、切换频道,而不需要知道电视的内部......
  • kotlin<第一篇>:入门
    一、main和打印funmain(){println("HeloKotlin")}kotlin中,新建一个main函数可以调试kotlin程序,println函数可以将结果输出到控制台。二、常量和变量val:只读变量(只读,不可变化)var:变量constval:常量常量不能在函数中使用,只能在方法外面使用,比如:constvalUSERNAME:St......
  • 一篇搞定发布自己的类库到Maven中央仓库
    在Maven项目中,90%以上的jar包是通过pom文件直接从开源仓库中获取依赖jar包文件,然后在项目中进行集成使用。此时如果你有一个开源项目,那么如何将该开源项目发布到Maven中央仓库,让其他人可以方便的使用,而不是先下载jar,然后install的本地?本文将通过一步步的操作带领大家讲自己的开......
  • 发布jar包到maven中央仓库
    1.环境在网上找的很多文章中写得都有很多问题,这里记录一下最近一次成功地发布jar包到maven中央仓库的过程。并附带上每一个步骤官方的指导链接。系统:mac(windows系统在下载辅助工具时不太一样,在配置上和mac系统没有区别)IDE:IntelliJIDEAJDK:1.8maven:3.8.1(IDEA自带的版本)代......