maven的入门使用

news2024/11/22 16:26:01

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);

}
	
@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
	System.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.coloradmin.cn/o/861135.html

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

相关文章

【MAC】 M2 brew安装 docker 运行失败 解决

MAC 安装 brew install --cask docker 之后一直显示docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. 网上看了一些文章 发现 这个不适用于M2 所以要从官网上下载 docker 安装成功

Java算法_ 房子强盗(LeetCode_Hot100)

题目描述&#xff1a;你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表…

在 Windows 上安装 OpenCV – C++ / Python

在这篇博文中&#xff0c;我们将在 Windows 上安装适用于 C 和 Python 的 OpenCV。 C 安装是在自定义安装 exe 文件的帮助下完成的。而Python的安装是通过Anaconda完成的。 在 Windows 上安装 OpenCV – C / Python&#xff08;opencv官方Wndows上安装openCV- C/ Pthon 的链接…

多核异构处理器A核与M核通信过程

多核异构处理器是指集成了不同类型或架构的CPU的系统级芯片&#xff08;SoC&#xff09;。 例如&#xff0c;有些处理器同时包含了高性能的A核&#xff08;如Cortex-A&#xff09;和低功耗的M核&#xff08;如Cortex-M&#xff09;。 这样的设计可以让不同的CPU负责不同的任务…

vue 项目中 utils 中 js 文件早于 main.js 文件调用

vue项目中utils中js文件早于main.js文件调用

手势识别-手势音量控制(opencv)

本项目是使用了谷歌开源的框架mediapipe&#xff0c;里面有非常多的模型提供给我们使用&#xff0c;例如面部检测&#xff0c;身体检测&#xff0c;手部检测等。 代码需要用到opencv HandTraqckModule模块 mediapipe模块和一个音量控制模块 AndreMiras/pycaw: Python Core…

Excel革命,基于电子表格开发的新工具,不是Access和Power Fx

深谙其道 在日常工作中&#xff0c;Excel是许多人不可或缺的办公工具。 是微软的旗下产品&#xff0c;属于Microsoft 365套件中的一部分&#xff0c;强大的数据处理和计算功能&#xff0c;被普遍应用在全球各行各业的人群当中&#xff0c;是一款强大且普及的电子表格软件。 于…

WebDAV之π-Disk派盘+Joplin

Joplin是一个优秀的开源笔记,可以组织到笔记本中的大量笔记和文本编辑器中进行复制,标记和修改。支持Evernote的笔记直接导入到Joplin应用程序中。Joplin还支持各种云服务同步,包括Dropbox、OneDrive、WebDAV或文件系统,方便对其进行检查、备份和移动。该应用程序可用于Win…

创建CREATE_STAT_TABLE 统计信息表在达梦和oracle中的使用

达梦 创建CREATE_STAT_TABLE 统计信息表 PROCEDURE CREATE_STAT_TABLE ( STATOWN VARCHAR(128), STATTAB VARCHAR(128), TABLESPACE VARCHAR(128) DEFAULT NULL, GLOBAL_TEMPORARY BOOLEAN DEFAULT FALSE ); 创建普通表的对应系统表的列名字段包括以下&#xff1a; OWNER TABL…

NLP 时事和见解【2023】

一、说明 AI的新闻当然不是即时的&#xff0c;但作为趋势和苗头&#xff0c;我们不得不做出自己的决定。比如&#xff0c;一些软件的支持是否持续&#xff0c;哪些现成的软件将不再使用&#xff0c;等等。 图片来自中途 以下是NLPlanet为您选择的有关NLP和AI的每周文章&#x…

3. 软件需求规格说明书 系统设计

目录 1. 软件需求规格说明书 2. 系统设计 3. 技术选型 4. 数据库实体 4.1 数据库设计 4.1.1 数据库名 forum_db 4.1.2 用户表 t_user 4.1.3 板块表 t_board 4.1.4 帖子表 t_article 4.1.5 帖子回复表 t_article_reply 4.1.6 站内信表 t_message 4.2 SQL 脚本 4.3 …

最小生成树—Kruskal算法

什么是最小生成树&#xff1f; 首先&#xff0c;最小生成树一定数无向图&#xff0c;并且在不影响所有点都连通的情况下&#xff0c;所有边的权重加起来最小值是多少。 比如说&#xff1a;无向图abcp如下图所示&#xff0c;每条边权重也标记出来了。最小生成树就如右侧所示。 …

什么是DNS的缓存?

DNS 缓存是一个临时的数据库&#xff0c;存储在计算机或网络设备&#xff08;如路由器&#xff09;上&#xff0c;用于保存最近的 DNS 查询结果。这种缓存机制可以加速后续的相同查询&#xff0c;因为设备可以直接从缓存中提取先前的查询结果&#xff0c;而不需要再次到外部的 …

0基础学C#笔记08:插入排序法

文章目录 前言一、过程简单描述&#xff1a;二、代码总结 前言 我们在玩打牌的时候&#xff0c;你是怎么整理那些牌的呢&#xff1f;一种简单的方法就是一张一张的来&#xff0c;将每一张牌插入到其他已经有序的牌中的适当位置。当我们给无序数组做排序的时候&#xff0c;为了…

07-2_Qt 5.9 C++开发指南_二进制文件读写(stm和dat格式)

文章目录 1. 实例功能概述2. Qt预定义编码文件的读写2.1 保存为stm文件2.2 stm文件格式2.3 读取stm文件 3. 标准编码文件的读写3.1 保存为dat文件3.2 dat文件格式3.3 读取dat文件 4. 框架及源码4.1 可视化UI设计4.2 mainwindow.cpp 1. 实例功能概述 除了文本文件之外&#xff…

竞赛项目 深度学习的口罩佩戴检测 - opencv 卷积神经网络 机器视觉 深度学习

文章目录 0 简介1 课题背景&#x1f6a9; 2 口罩佩戴算法实现2.1 YOLO 模型概览2.2 YOLOv32.3 YOLO 口罩佩戴检测实现数据集 2.4 实现代码2.5 检测效果 3 口罩佩戴检测算法评价指标3.1 准确率&#xff08;Accuracy&#xff09;3.2 精确率(Precision)和召回率(Recall)3.3 平均精…

刷题笔记 day7

力扣 209 长度最小的子数组 解法&#xff1a;滑动指针&#xff08;对同向双指针区间内的数据处理&#xff09; 1&#xff09;先初始化 两个指针 left &#xff0c;right。 2&#xff09;右移指针right的同时使用sum记录指针right处的值&#xff0c;并判断sum的值是否满足要求&…

直接在html中引入Vue.js的cdn来实现一个简单的博客

摘要 其实建立一个博客系统是非常简单的&#xff0c;有很多开源的程序&#xff0c;如果你不喜欢博客系统&#xff0c;也可以自己开发&#xff0c;也可以自己简单做一个。我这次就是用Vue.js和php做后端服务实现一个简单的博客。 界面 代码结构 代码 index.html <!DOCTYP…

逆向破解学习-单机斗地主

试玩 破解思路 9000 是成功的代码 Hook代码 import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; public class HookComJuneGameDouDiZhu extends HookImpl{ Override p…

实验室如何选择适合的LIMS实验室管理系统

实验室信息管理系统(LIMS)是从20世纪70年代末开始发展起来的&#xff0c;距今在国外已发展40多年。国内发展历史约20多年&#xff0c;且前十几年国内市场上主要是国外进口的LIMS产品&#xff0c;存在价格高、产品重&#xff0c;实施周期长等水土不服的情况。近十年开始&#xf…