maven安装配置、命令

news2024/12/25 10:18:17

maven: 是一个apache的一个开源项目,是一个项目管理工具,用来帮助开发者管理项目中的 jar(mysql,jaskson,jwt),以及 jar 之间的依赖关系、完成项目的编译、测试、打包和发布等工作。

为什么学习Maven?jar 包难以寻找;jar 包依赖的问题;jar 不方便管理;项目编译

maven中的概念

maven是如何工作的:第一印象就是管理jar包

maven官方提供了一个专门存储jar的仓库,不同的开发者或者框架的官方将这些jar上传到maven官方提供的仓库中。在仓库中,每一个jar都有一个唯一的位置,这样统一管理这些jar,其他开发者如果需要使用,只需要知道使用的jar包在maven仓库中的位置即可。只需要借助maven,输入jar包地址,maven工具就会自动从maven仓库下载jar。

Pom(Project Object Model 项目对象模型):pom.xml文件是用来指导maven工具如何工作,里面配置项目信息,依赖的jar,编译选项等信息

Maven 管理的项目的根目录下都有一个 pom.xml 文件。pom.xml 文件指导maven工具如何工作。 在 pom.xml 文件中配置项目基本信息以及项目构建信息等。比如:项目坐标、项目依赖的 jar、插件、编译选项等。 一旦在 pom.xml 文件中配置了所依赖的 jar,Maven 会自动从构件仓库中下载相应的构件。

坐标地址,是jar包在仓库中位置 groupId、artifactId、packaging、version

maven 给每个 jar 定义了唯一的标志,这个在 maven 中叫做项目的坐标,通过这个坐标可以找到你需要用到的任何版本的 jar 包。 groupId、artifactId、packaging、version 的组合被称为项目的坐标,它们形成了项目的唯一标识,Maven通过坐标来精确定位构件。其中 groupId、artifactId、version 是必须的,且这三项的值必须唯一,packaging 是可选的(默认为jar)。

仓库: 存放jar的地方,中央库全球共享(只有一份),先将 jar 从中央仓库下载到本地仓库,然后在项目中引用本地仓库的 jar。在全球各地还有镜像仓库(备份、阿里云),本地仓库(自己的电脑)。

Maven开发环境搭建:

前提

1.安装jdk maven是依赖于jdk

2.需要有网,第一次下载jar包需要从中央仓库或

者镜像仓库下载

1.下载 maven 服务器

  1. 下载maven:官网:http:// maven.apache. org,学习期间使用3.6.0版本

  1. 进行解压,然后配置环境变量,在path中配置到bin目录 D:\Program Files\apache-maven-3.6.0\bin

  1. 测试maven是否配置成功:命令行中输入mvn -version

2.配置maven

apache-maven-3.6.0\conf 配置文件,settings.xml是maven的主配置文件

配置两个文件: 1.本地仓库位置

<localRepository>D:/mavenRepository</localRepository>

2.配置阿里云镜像仓库地址,为了下载速度快

<mirrors>
    <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>
  1. idea中设置maven

最后点击应用,保存

  1. 创建maven工程

Group、Artifact、Version一般创建工程的时候不用管,如果想要把这个安装到仓库的时候才需要修改

maven项目结构

Pom.xml配置

maven 仓库官网http://mvnrepository.com/,在此官网就可以下载自己所需开发 jar 包

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>  <!--组id(jar包在仓库的地址)-->
    <artifactId>mavenDemo</artifactId><!--构建id(项目名)-->
    <version>1.0.0</version><!--版本号-->
    <name>mavenDemo</name><!--项目的名字-->
    <packaging>war</packaging><!--打包类型-->

    <!--属性设置-->
    <properties>
        <!--编译的版本-->
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
        <junit.version>5.6.2</junit.version>
    </properties>

    <dependencies><!--依赖-->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId><!--打包的组id-->
            <artifactId>mysql-connector-java</artifactId><!--构建id(组件名字)-->
            <version>8.0.16</version><!--版本号-->
            <type>jar</type><!--包类型,默认是jar,如果是jar包的话就不用写-->
          <scope>compile</scope><!--范围,作用域,默认是compile,打包就会将jar包打包到项目中的lib目录中-->
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
           <scope>provided</scope><!--provided项目打包时,此jar包不会被打包到项目中去,只是本地编译需要-->
        </dependency>
    </dependencies>

    <build>
        <plugins><!--配置maven插件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.0</version>
            </plugin>
        </plugins>
    </build>
</project>

各个子元素功能解释:

<groupId>,<artifactId>和<version>:依赖项的基本坐标

<type>:依赖项的 packaging 类型,默认是 jar;

<scope>:依赖项的作用范围,默认是 compile。各个取值及含义如下:

  • compile:编译时和运行时依赖。如果你的项目最终打包为 war 包,则该依赖包会被拷贝到 war 包中的 lib 目录中。

  • provided:编译项目主代码和测试代码时使用此依赖项,运行时由 jre 或 web容器提供。如果你的项目最终打包为 war 包,则该 jar不会被打包

maven命令

1.compile 编译

双击MavenDemo/Lifecycle/compile,编译完之后会生成target文件夹,相当于out。

也可以在cmd中输入命令:

2.clean

删除 target

3.package 本地进行打包

打包后会生成.war的文件,war包给运维人员,运维人员把war包部署到服务器中

4.install 把项目安装到本地仓库

install包含compile和package,将打包好的安装到本地仓库中

5.test 运行测试代码

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

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

相关文章

WEB:wife_wife

背景知识 JavaScript原型链污染 题目 先尝试一下&#xff0c;注册了管理员账号 这里不知道邀请码&#xff0c;所以没有勾选 答案不正确 这里借鉴其他大佬的思路 查看源代码才知道&#xff0c;后端没有数据库&#xff0c;所以sql注入是不可能的 // post请求的路径 app.pos…

Python open()函数之buffering缓冲区策略

文章目录 一、buffering 缓冲策略二、示例1. 可交互文本文件1.1 buffering-1&#xff0c;行缓冲&#xff08;默认&#xff09;1.2 buffering0&#xff0c;文本模式不支持关闭缓冲区1.3 buffering1&#xff0c;行缓冲&#xff0c;同 buffering-11.4 buffering>1&#xff0c;i…

使用开源项目并使用docker的方式搭建代理接口

目录 一、docker部署代理池子测试1、windows搭建代理池子测试2、linux上搭建代理池子测试 一、docker部署代理池子测试 这里使用的代理池子项目是崔大的git开源的项目&#xff0c;代理项目代码这里选择的安装方式是docker安装&#xff0c;这样即使本地没有redis环境&#xff0…

linux 在excel里面找内容

linux 在excel里面找内容 背景&#xff1a;在大数据行业中&#xff0c;很多数据源是excel文件&#xff0c;但是常常会出现查找excel内容找到对应的文件&#xff0c;所以制作了简单的shell脚本方便查询对应的excel文件 查看下面精简的内容即可&#xff0c;开箱即用 shell转换 …

python web开发之gunicorn 和 uWSGI 对比和配置

关于uWSGI的定义&#xff0c;在上一篇文章中写了&#xff0c;链接&#xff1a;WSGI/uwsgi/uWSGI详解 python开发常见的容器就只有的uWSGI和Gunicorn&#xff0c;本文介绍两者的区别和配置 1. 共同点 在架构上&#xff0c;nginx负责动态的转发和静态文件的直接访问&#xff0c;…

三、万物皆对象(2)

本章概要 类的创建 类型字段基本类型默认值方法使用 返回类型参数列表 程序编写 命名可见性使用其他组件static 关键字 小试牛刀 编译和运行 编码风格 类的创建 类型 如果一切都是对象&#xff0c;那么是什么决定了某一类对象的外观和行为呢&#xff1f;换句话说&#xff…

2023年华数杯数学建模竞赛ABC题思路代码论文资料汇总贴

下文包含&#xff1a;2023华数杯数学建模竞赛ABC题思路解析代码参考论文等及如何准备数学建模竞赛 C君将会第一时间发布选题建议、所有题目的思路解析、相关代码、参考文献、参考论文等多项资料&#xff0c;帮助大家取得好成绩。2023华数杯数学建模竞赛于8月3号下午6点正式开赛…

Origin科学绘图分析软件2023最新版下载安装教程

在科学研究和工程领域&#xff0c;数据的处理和分析是至关重要的一环&#xff0c;而Origin则是这方面的一款重要工具。Origin软件是由OriginLab公司开发的&#xff0c;主要用于各种科学数据的处理和分析&#xff0c;以及高质量的科学图形的创建。#乐享周末分享吧# 下载地址文末…

Spring Cloud Eureka 服务发现速度慢配置优化总结

文章目录 一、 Eureka-server 服务端缓存问题1.1 服务端缓存1.2 客户端从服务端获取实例数据的过程1.3 优化 二、客户端 Eureka-client 缓存导致2.1 Eureka客户端和服务端交互缓存2.2 Ribbon 缓存了EurekaClient的缓存2.3 优化 使用Eureka时&#xff0c;常常会发现服务发现慢&a…

Stable Diffusion 本地部署教程

1.前言&#xff1a; 最近看Stable Diffusion开源了&#xff0c;据说比Disco Diffusion更快&#xff0c;于是从git上拉取了项目尝试本地部署了&#xff0c;记录分享一下过程~ 这里是官网介绍&#xff1a;https://stability.ai/blog/stable-diffusion-public-release 2.必要前提…

jar 更新 jar包内的 class,以及如何修改class

一、提取Jar 内文件 #提取jar内的配置文件jar -xvf a.jar META-INF\plugin.xml-已解压: META-INF/plugin.xml#提取jar内的class文件&#xff0c; 提示&#xff1a;反编译为java文件&#xff0c;修改后再使用javac xxx.java编译为class&#xff0c;jar -xvf a.jar io.config.**…

三维测量技术在高端精密制造中的应用

科技创新是新时代的重要发展动力。三维测量技术以精密机械为基础&#xff0c;综合应用了电子技术、计算机技术、光学技术和数控技术等先进技术&#xff0c;可以对机械、汽车、航空、家具、工具原型等测量出高精度的几何零部件以及测量复杂形状的机械零部件&#xff0c;给各行业…

Autosar IOC机制(核间通信)

文章目录 一、IOC二、诊断代码实例一、IOC IOC和操作系统紧密相关,是操作系统实现的一部分 ①ECU间通信:通过通信协议栈定义好的API进行通信,通俗来讲就是通过总线(CAN/LIN/Flexlay)进行通信。 ②OS-Application内SWC间的通信:通过RTE处理。 ③OS-Application间的通信:通信…

【iOS】自定义字体

文章目录 前言一、下载字体二、添加字体三、检查字体四、使用字体 前言 在设计App的过程中我们常常会想办法去让我们的界面变得美观&#xff0c;使用好看的字体是我们美化界面的一个方法。接下来笔者将会讲解App中添加自定义字体 一、下载字体 我们要使用自定义字体&#x…

JQuery全部过滤选择器详细介绍下

文章目录 JQuery全部过滤选择器详细介绍-下属性过滤选择器● 属性过滤选择器-应用实例代码演示 子元素过滤选择器● 子元素过滤选择器基本介绍5. nth-child() 选择器详解如下&#xff1a;● 子元素过滤选择器示例-应用实例代码演示 表单属性过滤选择器● 此选择器主要对所选择的…

壹牛NFT数字艺术藏品数藏系统源码 全开源

这套源码小白大致测试了一下发现几点问题&#xff0c;uniapp少了几个文件不能编译只能用public/h5里面web端,后台账号密码似乎不正确&#xff0c;这类源码挺少的感兴趣的自己下来研究修复一下吧。 壹牛NFT数字艺术藏品数藏系统源码 全开源 这个版本新增了不少功能&#xff0c…

动态规划入门第2课,经典DP问题1 --- 线性

动态规划要点 阶段的2个方向&#xff1a;从上到下&#xff1b;从下到上。 动态规划要点 从递归到DP 动态规划要点 两个2个方向 优化的可能性 第1题 合唱队形 N位同学站成一排&#xff0c;音乐老师要请其中的(N-K)位同学出列&#xff0c;使得剩下的K位同学排成合唱队形…

Apple M1 Pro macOS 切换中文输入法卡住

(macOS 在切换中文输入法时出现卡住的情况 1&#xff0c;切换为中文输入法后再次卡住2&#xff0c;杀死 简体中文输入方式的进程参考 将光标移到菜单栏的输入法切换为英文输入法 多次切换为英文输入法&#xff0c;可以切换为英文输入法 切换为英文输入法后电脑不卡顿了&#xf…

基于springboot+jpa+mysql+html网上商城系统

基于springbootjpamysqlhtml网上商城系统 一、系统介绍二、功能展示1.主页(客户)2.登陆&#xff08;客户&#xff09;3.注册&#xff08;客户&#xff09;4.购物车(客户)5.我的订单&#xff08;客户&#xff09;6.用户管理&#xff08;管理员&#xff09;7.分类管理&#xff08…

iOS--编译链接的过_1

iOS 开发中使用的是编译语言&#xff0c;所谓编译语言是在执行的时候&#xff0c;必须先通过编译器生成机器码&#xff0c;机器码可以直接在CPU上执行&#xff0c;所以执行效率较高&#xff0c;是使用 Clang / LLVM 来编译的。LLVM是一个模块化和可重用的编译器和工具链技术的集…