maven的入门使用

maven的入门使用

  • 1.Maven(Maven Apache)是一个流行的项目构建和管理工具,
  • 2.项目结构和POM文件:
  • 3.POM文件(Project Object Model)
  • 4.依赖管理: 在POM文件中
  • 5.生命周期和构建过程
    • 1.前言
    • 2.插件系统
    • 3.仓库管理
  • 1.入门

1.Maven(Maven Apache)是一个流行的项目构建和管理工具,

用于自动化构建、测试和部署Java项目。它提供了一种标准的项目结构,定义了项目依赖关系,并可以自动下载所需的依赖库。下面是Maven的基本工作原理:

2.项目结构和POM文件:

Maven要求项目按照一定的标准结构组织,这有助于自动化构建过程。项目根目录下包含一个名为pom.xml的文件,它是项目的核心文件,包含了项目的元数据、依赖配置、构建插件等信息。

3.POM文件(Project Object Model)

: POM文件是一个XML文件,它定义了项目的属性和配置。它包含了项目的坐标(GroupId、ArtifactId、Version)、依赖项、插件配置、构建过程、开发者信息等。通过POM文件,Maven知道如何构建项目以及它所依赖的库。

4.依赖管理: 在POM文件中

您可以指定项目所依赖的外部库和插件。当您构建项目时,Maven会自动下载这些依赖库,并根据它们之间的关系进行适当的版本管理。这减少了手动管理外部依赖的复杂性。

5.生命周期和构建过程

1.前言

Maven定义了一系列的构建生命周期和阶段,如clean、validate、compile、test、package、install、deploy等。每个生命周期包含一组预定义的构建阶段。当您运行Maven命令时,例如mvn clean install,Maven将按照定义的生命周期和阶段依次执行这些操作。

2.插件系统

: Maven支持插件,这些插件可以扩展构建过程的功能。例如,maven-compiler-plugin可以用来编译项目的Java源代码,maven-surefire-plugin用于执行单元测试等。您可以在POM文件中配置这些插件,以定制构建过程。

3.仓库管理

: Maven使用中央仓库(Central Repository)作为默认的依赖库存储位置,您可以在POM文件中指定所需的依赖项。Maven还支持本地仓库,它是您本地计算机上存储下载的依赖项的地方。

构建生命周期和插件执行顺序: Maven的构建生命周期中的每个阶段都会触发一系列插件的执行。这些插件会根据其配置和目标来执行特定任务。Maven会按照约定的顺序执行这些插件,以生成构建产物,如编译后的类文件、测试报告、打包后的JAR或WAR文件等。

总之,Maven的核心思想是通过POM文件来管理项目的构建过程和依赖关系,以及使用预定义的生命周期和插件来自动化构建任务。这样可以减少手动配置和管理的工作,提高了项目构建的效率和一致性。

1.入门

1.先去官网下好http://maven.apache.org/download.cgi

2.配置环境变量
1.新增 MAVEN_HOME
修改path添加maven相关路径
配置方式跟jdk有些类似,环境变量MAVEN_HOME和M2_HOME的 值为maven的根目录、
然后在PATH环境变量里加入“%MAVEN_HOME%\bin;%M2_HOME%\bin;”即可

  1. doc窗口执行命令“mvn –version” doc窗口执行命令“mvn –version”

  2. 修改“MAVEN_HOME\config”下的setting.xml文件,配置本地仓库。注意是:“E:/”而非“E:\”
    例如:E:/mvn-repository
    注1:标签在setting.xml文件的53行
    注2:仓库的作用就是用来存放jar包的
    注3:仓库的分类
    中央仓库
    公司仓库(也叫私人仓库或私服)
    本地仓库

        中央仓库(http://search.maven.org/,但一般使用另外一个网站:http://www.mvnrepository.com/)公司仓库本地仓库           公司里面还会有一个大仓库(本地)全公司使用本地仓库程序员自己使用,私服全公司使用,中央仓库所有人用
    

2.ecplise集成maven完成测试
在这里插入图片描述

在上面配置maven的路径然后点击完成即可

在这里插入图片描述
在这里配置当前用户服务和仓库路径,配置好以后,ecplise会自动下载相关插件。
插件下载完毕后会出现ok,这时候可以开始创建项目了。创建好项目后打开pon.xml


<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.44</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency>

更改以下代码,然后可以开始测试,输入版本之后crt+s就会自动下载,我们可以测试是否可用,如下图
在这里插入图片描述
出现以下界面说明成功了
在这里插入图片描述
然后我们可以更改web.xml里面的代码,

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
</web-app>

在这里插入图片描述

在这里面更改项目的一些东西,比如说web必须要3.1,和jdk要1.8 改好之后基本就没有问题了。

开始测试后端代码

package com.niyin.com;import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/hello")
public class HelloMavenServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubSystem.out.println("hellow maven..");	req.getRequestDispatcher("/index.jsp").forward(req, resp);}	}

前端代码

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
hellow
</body>
</html>```
运行结果:如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/fa395d2696cc4795ac6e88d46ce24192.png#pic_center)说明完全可以用了

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

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

相关文章

uni-app使用vue语法进行开发注意事项

目录 uni-app 项目目录结构 生命周期 路由 路由跳转 页面栈 条件编译 文本渲染 样式渲染 条件渲染 遍历渲染 事件处理 事件修饰符 uni-app 项目目录结构 组件/标签 使用&#xff08;类似&#xff09;小程序 语法/结构 使用vue 具体项目目录如下&#xff1a; 生命…

【深度学习注意力机制系列】—— SENet注意力机制(附pytorch实现)

深度学习中的注意力机制&#xff08;Attention Mechanism&#xff09;是一种模仿人类视觉和认知系统的方法&#xff0c;它允许神经网络在处理输入数据时集中注意力于相关的部分。通过引入注意力机制&#xff0c;神经网络能够自动地学习并选择性地关注输入中的重要信息&#xff…

Scikit-learn聚类方法代码批注及相关练习

一、代码批注 代码来自&#xff1a;https://scikit-learn.org/stable/auto_examples/cluster/plot_dbscan.html#sphx-glr-auto-examples-cluster-plot-dbscan-py import numpy as np from sklearn.cluster import DBSCAN from sklearn import metrics from sklearn.datasets …

DNS部署与安全详解(下)

文章目录 前言一、指定区域解析配置二、DNS服务器对外名称显示配置三、转发器使用配置四、配置辅助&#xff08;备份&#xff09;服务器五、如何让虚拟机可以真实上网六、为DNS服务器配置别名 前言 上一篇博客我们已经在Windows server2003的虚拟机上下载了DNS软件&#xff0c;…

SQL-每日一题【1251. 平均售价】

题目 Table: Prices Table: UnitsSold 编写SQL查询以查找每种产品的平均售价。average_price 应该四舍五入到小数点后两位。 查询结果格式如下例所示&#xff1a; 解题思路 1.题目要求查询每种产品的平均售价。给出了两个表&#xff0c;我们用聚合查询来解决此问题。 2.首先我…

Samba(二)

问题 Rocky Linux使用smbclient访问win11的共享文件时提示 Error NT_STATUS_IO_TIMEOUT 分析 通过测试&#xff0c;发现关闭windows公用网络防火墙时&#xff0c;可正常显示服务器端所分享出来的所有资源&#xff1b;进一步发现单独放行防火墙进站规则中的文件和打印机共享&a…

20、stm32使用FMC驱动SDRAM(IS42S32800G-6BLI)

本文将使用安富莱的STM32H743XIH板子驱动SDRAM 引脚连接情况 一、CubeMx配置工程 1、开启调试口 2、开启外部高速时钟 配置时钟树 3、开启串口1 4、配置MPU 按照安富莱的例程配置&#xff1a; /* ********************************************************************…

什么是POP3协议?

POP3&#xff08;Post Office Protocol Version 3&#xff09;是一个用于从电子邮件服务器获取邮件的应用层协议。以下是关于POP3的详细解释&#xff1a; 基本操作&#xff1a;使用POP3&#xff0c;电子邮件客户端可以从邮件服务器上下载电子邮件&#xff0c;并将其保存在本地。…

【JPCS出版】第五届能源、电力与电网国际学术会议(ICEPG 2023)

第五届能源、电力与电网国际学术会议&#xff08;ICEPG 2023&#xff09; 2023 5th International Conference on Energy, Power and Grid 最近几年&#xff0c;不少代表委员把目光投向能源电力领域&#xff0c;对促进新能源发电产业健康发展、电力绿色低碳发展&#xff0c;提…

cpu的架构

明天继续搞一下cache,还有后面的, 下面是cpu框架图 开始解释cpu 1.控制器 控制器又称为控制单元&#xff08;Control Unit&#xff0c;简称CU&#xff09;,下面是控制器的组成 1.指令寄存器IR:是用来存放当前正在执行的的一条指令。当一条指令需要被执行时&#xff0c;先按…

【C语言】指针的进阶2

指针进阶 函数指针数组指向函数指针数组的指针回调函数指针和数组经典题目的解析 函数指针数组 数组是一个存放相同类型数据的存储空间&#xff0c;那我们已经学习了指针数组&#xff0c; 比如&#xff1a; int* arr[10];//数组的每个元素是int*那要把函数的地址存到一个数组…

无涯教程-Perl - getpwnam函数

描述 此函数基于EXPR指定的用户名,从/etc/passwd文件提取的列表context中返回字段列表。通常这样使用- ($name,$passwd,$uid,$gid,$quota,$comment,$gcos,$dir,$shell) getpwnam($user); 在标量context中,返回数字用户ID。如果尝试访问整个/etc/passwd文件,则应使用getpwent…

Lecoode有序数组的平方977

题目建议&#xff1a; 本题关键在于理解双指针思想 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 文章讲解&#xff1a;代码随想录 视频讲解&#xff1a; 双指针法经典题目 | LeetCode&#xff1a;977.有序数组的平方_哔哩…

【Linux】内核宏定义解释postcore_initcall,arch_initcall,subsys_initcall

postcore_initcall postcore_initcall(pcibus_class_init) 是一个宏&#xff0c;用于在Linux内核初始化过程中注册一个后期初始化函数。 这个宏的含义如下&#xff1a; postcore_initcall 是一个宏定义&#xff0c;用于指定注册的函数在内核初始化的哪个阶段执行。 pcibus_cl…

Spring Gateway+Security+OAuth2+RBAC 实现SSO统一认证平台

背景&#xff1a;新项目准备用SSO来整合之前多个项目的登录和权限&#xff0c;同时引入网关来做后续的服务限流之类的操作&#xff0c;所以搭建了下面这个系统雏形。 关键词&#xff1a;Spring Gateway, Spring Security, JWT, OAuth2, Nacos, Redis, Danymic datasource, Jav…

nginx代理服务、网关配置

一、nginx安装在服务器&#xff0c;本机运行服务&#xff0c;如何使用远程nginx代理本机服务&#xff1f; 打开nginx配置文件&#xff0c;位置&#xff1a;/usr/local/nginx/conf/nginx.conf&#xff0c;在http模块中添加以下server代码段&#xff1a; http {server {listen …

Stable Diffusion - 人物坐姿 (Sitting) 的提示词组合 与 LoRA 和 Embeddings 配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132201960 拍摄人物坐姿时&#xff0c;需要注意&#xff1a; 选择一个舒适和自然的坐姿&#xff0c;符合个性和心情。可以坐在椅子、沙发、长凳、…

ubuntu安装docker-compose

1.官方安装链接 访问&#xff1a;https://docs.docker.com/compose/install/standalone/ 链接&#xff0c;可以看到如下页面&#xff0c;使用下面圈起来的命令即可 2.安装 使用该命令进行安装&#xff0c;很慢&#xff0c;一直卡着不动&#xff0c;原因是从github中下载&am…

路由导航守卫中document.title = to.meta.title的作用以及路由跳转修改页面title

目录 &#x1f53d; document.title to.meta.title的作用 &#x1f53d; Vue路由跳转时如何更改页面title &#x1f53d; document.title to.meta.title的作用 路由导航守卫如下&#xff1a; router.beforeEach(async (to, from, next) > {document.title to.meta.ti…

css中的var函数

css中的var函数 假设我们在css文件存在多个相同颜色值&#xff0c;当css文件越来越大的时候&#xff0c;想要改颜色就要手动在每个旧颜色上修改&#xff0c;这样维护工作非常难进行。 但是我们可以使用变量来存储值&#xff0c;这样可以在整个css样式表中重复使用&#xff0c…