Javaweb开发——maven

news2024/11/15 9:47:57

一、概述

        介绍:Apache Maven是- -个项目管理和构建工具,它基于项目对象模型
                 (POM Project Object Model)的概念,通过一小段描述信息来管理项目的构建。
        作用:
                ➢方便的依赖管理
                ➢统一的项目结构
                ➢标准的项目构建流程
        官网:Maven – Welcome to Apache Maven

        仓库:用于存储资源,管理各种jar包。
                ➢本地仓库:自己计算机上的-一个目录。(在安装的时候可以选择)
                ➢中央仓库: 由Maven团队维护的全球唯一的。
                ➢中央仓库地址: https://repo1.maven.org/maven2/
                ➢远程仓库(私服): 一般由公司团队搭建的私有仓库。 
                ➢查找顺序:现在本地找,本地没有去远程仓库找,远程没有才会去中央仓库找

        安装步骤: (大多数情况下都不会去本地安装)

                第一步:下载maven,下载地址:Maven – Download Apache Maven

                                 

                第二步:配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录。 
                          <localRepository>D:\develop\apache-maven-3.6.1\mvn_ repo</localRepository>

                第三步:配置阿里云私服:
                               修改conf/settings.xml中的<mirrors>标签,为其添加如下子标签:

 <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url> http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
  </mirror>

                第四步:配置环境变量: MAVEN_ HOME为maven的解压目录,并将其bin目录加
                              入PATH环境变量。 

                ① 复制maven的安装目录,在此电脑上右键→属性→高级系统设置→环境变量→系统
                      变量下新建 ,输入变量名和安装目录确定  

                ②  接着向下拉系统变量,选择path→新建→%MAVEN_HOME%\bin

二、idea集成

 新建项目project的配置

1.配置Maven环境

 选择IDEA中File --> Settings --> Build,Execution,Deployment --> Build Tools --> Maven

 设置IDEA使用本地安装的Maven,并修改配置文件及本地仓库路径 

打开maven选择Runner设置JRE

选择Compiler下的Java Compiler 去设置 

上面是根据项目进行配置,下面是全局配置的方法

idea中选择File--> Close Project --> Customize --> All setting

之后的操作步骤单个项目的配置是一样的 

2.创建Maven项目

 ① 创建模块,选择Maven,'“点击Next

      点击File --> New --> Module
 ② 填写模块名称,坐标信息,点击finish, 创建完成

finish之后,等待maven的下载,完成之后配置文件是pom.xml


 ③  编写HelloWorld,并运行

       Maven项目的工程结构,text下没有resources文件夹,是因为这个文件夹在Text中不常用,
        所以Maven没有创建,可以text文件夹上手动右键创建一个文件夹,会直接有提示

          当我们新建一个个类并且运行起来,会发现项目目录结构够多了一个target文件夹,
          这个文件夹中存放的是自编码类

        Maven坐标 

        Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置

        使用坐标来定义项目或引入项目中需要的依赖。

        Maven坐标的主要组成

        groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.baidu)

        artifactId:定义当前Maven项目名称(通常是模块名,例如:order-service)

        version:定义当前项目版本号

<groupld>com.XXXa</groupld>
<artifactld>maven-project</ artifactld>
<version>1.0-SNAPSHOT</version>
<!--项目依赖-->
<dependency>
    <groupld>ch.qos.logback</groupld>
    <artifactld>logback-classic</ artifactld>
    <version>1.2.3</version>
</dependency>

3.导入Maven项目 

 方式一:打开IDEA,选择右侧Maven面板,,点击+号,选中对应项目的pom.xml文件,双击即可。

   如果右侧没有maven面板就按照下面的方式调出来

方式二:打开IDEA,选择右侧Maven面板,点击+号,选中对应项目的pom.xml文件,双击即可。 

 

三、依赖管理

1.依赖配置

        依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

        配置:
        1> 在 pom.xml中编写<dependencies>标签
        2> 在<dependencies>标签中 使用<dependency>引入坐标
        3> 定义坐标的 groupld,artifactld,version

<dependencies>
    <dependency>
        <groupld>ch.qos.logback</groupld>
        <artifactld>logback-classic</artifactld>
        <version>1.2.3</version>
    </dependency>
</dependencies>

         4> 点击刷新按钮,引入最新加入的坐标 

        注意:

        ① 如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。
             (这个过程会比较耗时,耐心等待)

        ② 如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索。

2.依赖传递

        依赖具有传递性:

        直接依赖:在当前项目中通过依赖配置建立的依赖关系
        间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

 

        排除依赖:
        排除依赖指主动断开依赖的资源,被排除的资源无需指定版本。

         

<dependency>
    <groupId>com.cccc</groupId>
    <artifactId>maven-projectB</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 排除依赖,不需要制定版本-->
    <exclusions>
        <exclusion>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3.依赖范围

        依赖的jar包,默认情况下,可以在项目的任何地方使用。
        作用范围:
                主程序范围有效。(main文件夹范围内)
                测试程序范围有效。(test文件夹范围内)
                是否参与打包运行。(package指令范围内) 
        可以通过<scope>...</scope>设置其作用范围:
                 compile(默认):主程序、测试程序、打包(运行),例如:log4j
                 test:测试程序,例如:junit
                 provided:主程序、测试程序,例如:servlet-api
                 runtime:测试程序、打包(运行),例如:jdbc驱动

 

4.生命周期

    Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统 

    Maven中有3套相互独立的生命周期
        clean:清理工作。 
        
主要阶段: clean 移除上一次构建生成的文件

        default:核心工作,如:编译、测试、打包、安装、部署等。
        主要阶段:compile 编译项目源代码
                          test 使用合适的单元测试框架运行测试(junit)
                          package 将编译后的文件打包,如:jar、war等
                          install 安装项目到本地仓库

        site:生成报告、发布站点等。 (这一生命周期很少用到)

    Maven的包中已经加载了这些主要的阶段
        
        注意:
      
  在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。想要跳过某个阶段可以
        选中某个阶段然后点击右侧上面的蓝色闪电图标,如下图: 

    执行指定生命周期的两种方式:
    在idea中,右侧的maven工具栏,选中对应的生命周期,双击执行。(常用)
    在命令行中,通过命令执行mvn clean、 mvn compile、mvn compile、mvn package、mvn test
    注意:要在项目文件夹中执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2109022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

仕考网:公务员笔试和面试哪个难?

公务员笔试和面试哪个难?二者之间考察的方向不同&#xff0c;难度也是不同的。 笔试部分因其广泛的知识点和有限的考试时间显得难度更高一些&#xff0c;在笔试环节中&#xff0c;考生需在有限的时间内应对各种问题&#xff0c;而且同时还要面对激烈的竞争&#xff0c;在众多…

LabVIEW程序升级改造注意问题

在对别人编写的LabVIEW程序进行升级改造时&#xff0c;尤其是要更换硬件或增加新功能时&#xff0c;需要从多个方面进行细致评估和规划&#xff0c;以确保顺利完成升级。以下是关键注意事项和评估方法&#xff1a; 1. 理解原有设计&#xff1a; 深入理解原有系统的架构、功能逻…

记录下Linux宝塔安装java后无法执行命令,mysql和redis外网无法连接的问题。

新服务器的到来&#xff0c;先把环境整整&#xff0c;。 问题1&#xff1a;java安装成功&#xff0c;想执行命令 java -version测试一下&#xff0c;报错未找到命令。 这个通常意味着尽管你已经在宝塔面板上安装了Java&#xff0c;但是系统无法识别Java的路径&#xff0c;因此…

STM32G474之模拟比较器

STM32G474之模拟比较器测试方法&#xff1a;PA1的附加功能为COMP1_INP&#xff0c;无需映射&#xff0c;直接将它配置为模拟功能&#xff0c;然后将COMP1_OUT引脚映射到PA0&#xff0c;采用DAC1_OUT1输出电压给比较器同向输入COMP1_INP引脚&#xff0c;因此在测试时&#xff0c…

【python】—— Python爬虫实战:爬取珠海市2011-2023年天气数据并保存为CSV文件

目录 目标 准备工作 爬取数据的开始时间和结束时间 爬取数据并解析 将数据转换为DataFrame并保存为CSV文件 本文将介绍如何使用Python编写一个简单的爬虫程序,以爬取珠海市2011年至2023年的天气数据,并将这些数据保存为CSV文件。我们将涉及到以下知识点: 使用r…

UnityShader自定义属性特性

前言&#xff1a; 在编写UnityShader时&#xff0c;我们常常会使用特性来更换材质球面板的属性外观&#xff0c;除此之外&#xff0c;还可以使用自定义的扩展脚本来实现自定义的材质球界面&#xff0c;参考我之前的文章UnityShaderUI编辑器扩展 但是自定义扩展每次都要单独写…

JavaScript接下来的小项目

前言 ● 接下来&#xff0c;我们将学习如下所示的一个小项目&#xff0c;这个项目是一个地图的项目&#xff0c;我们可以在地图上标记一些我们运动的位置进行记录&#xff0c;并且浏览器在本地会帮我们记录他们&#xff0c;其他一些功能后面慢慢阐述并实现 启动代码 JS代码…

基于SSM+Vue+MySQL的出租车管理系统

系统背景 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本出租车管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

phpstorm格式化代码

快捷键&#xff1a;Ctrl Alt L 1.代码按等号按键值对自动对齐 第一步&#xff1a;点击左上角File&#xff0c;点击Settings 第二步&#xff1a;

Unity界面、组件以及脚本

Unity界面 菜单栏 菜单栏&#xff1a;位于屏幕顶部&#xff0c;包含文件、编辑、资产、游戏对象、组件、地形、动画、图形、AI、窗口、工具和帮助等菜单项。 工具栏 工具栏&#xff1a;位于菜单栏下方&#xff0c;提供了快速访问常用功能的按钮&#xff0c;如播放、暂停、停止…

【14.1运行版】C++俄罗斯方块-实现欢迎界面

实现欢迎界面 #include <stdio.h>//C语言形式的输入输出 #include <graphics.h>//图形库的头文件//实现欢迎界面 void welcome(void);int main(void) {welcome();//colsegraph();return 0; }void welcome(void) {//初始化画布initgraph(550, 660);//设置窗口标题H…

面壁小钢炮3.0发布:端侧ChatGPT时代的技术飞跃

一、面壁小钢炮3.0模型介绍 ➤ MiniCPM 3.0 开源地址&#xff1a; &#x1f517; https://github.com/OpenBMB/MiniCPM &#x1f517; https://huggingface.co/openbmb/MiniCPM3-4B 2024年9月5日&#xff0c;面壁智能发布 MiniCPM3-4B&#xff01;该模型的表现超越 Phi-3.5-…

【Linux】gcc/g++ 、make/Makefile、git、gdb 的使用

目录 1. Linux编译器-gcc/g1.1 编译器gcc/g的工作步骤1.2 函数库1.2.1 函数库的作用及分类1.2.2 动态链接和静态链接1.2.3 动态库和静态库的优缺点 1.3 gcc选项 2. Linux项目自动化构建工具-make/Makefile2.1 .PHONY2.2 尝试编写进度条程序 3. git3.1 安装 git3.2 下载项目到本…

Linux 竞争与并发(学习总结)

在Linux驱动开发中&#xff0c;“并发”和“竞争”是两个重要的概念&#xff0c;它们涉及到多任务环境下资源的管理和使用。 并发 (Concurrency) 并发指的是在同一时间段内&#xff0c;多个任务看似同时运行的现象。实际上&#xff0c;在单核处理器上&#xff0c;这通常是通过…

Android之LiveTemplate注释模板

目录 效果图步骤 效果图 步骤 1.首先通过File->Setting->Editor->LiveTemplate 我是放在Android下的&#xff0c;然后点击右侧&#xff08;新版本的话不在右侧&#xff09;加号&#xff0c; 点击&#xff08;加号&#xff09;之后&#xff0c;如图 /*** author:T…

RK3588 系列之3—rknn使用过程中遇到的bug

RK3588 系列之3—rknn使用过程中遇到的bug 1.librockchip_mpp.so: file format not recognized&#xff1b; treating as linker scrip2.Could not find a package configuration file provided by "OpenCV" with any of the following names参考文献 1.librockchip_…

java后端保存的本地图片通过ip+端口直接访问

直接上代码吧 package com.ydx.emms.datapro.controller;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.…

Docker Image 命令

文章目录 目录 文章目录 1 . Docker镜像是什么? 2 . 镜像命令详解 docker images docker tag docker pull docker rmi docker save 总结 1 . Docker镜像是什么? Docker image 本质上是一个 read-only 只读文件&#xff0c; 这个文件包含了文件系统、 源码、库文件…

性能测试经典案例解析——远程培训系统

各位好&#xff0c;我是 道普云 一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。 欢迎关注我的专栏和我的主页 道普云 文章内容具有一定门槛&#xff0c;建议先赞再收藏慢慢学习&#xff0c;有不懂的问题欢迎私聊我。 希望这篇文章对想提高软件测试水平…

负载均衡调度器--LVS

文章目录 集群和分布式集群分布式 LVS介绍LVS特点LVS工作原理LVS集群架构 LVS集群中的术语CIPVIPRSDIPRIP LVS集群的工作模式NAT模式DR模式DR模式的特点: TUN模式 LVS调度算法LVS相关软件ipvsadm 命令管理集群服务&#xff1a;增、改、删管理集群上的RS:增、改、删 创建集群 LV…