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.hqwc.cn/news/66365.html

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

相关文章

MySQL语句总和之MySQL数据库与表结构操作

目录 1、启动MySQL服务 2、进入MySQL数据库 3、退出数据库 4、查看MySQL数据库所有库 5、创建、删除、使用、查看所处库操作 6、创建表 7、查看表结构 8、表结构操作 1&#xff09;修改表名 2&#xff09;自增长操作 3)添加一个address字段放在Phone字段后面 4)添加…

c++ 有元

友元分为两部分内容 友元函数友元类 友元函数 问题&#xff1a;当我们尝试去重载operator<<&#xff0c;然后发现没办法将operator<<重载成成员函数。因为cout的输出流对象和隐含的this指针在抢占第一个参数的位置。this指针默认是第一个参数也就是左操作 数了。…

LeetCode 36题:有效的数独

题目 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#xff…

【JavaEE进阶】Spring 更简单的读取和存储对象

文章目录 一. 存储Bean对象1. 配置扫描路径2. 添加注解存储 Bean 对象2.1 使用五大类注解存储Bean2.2 为什么要有五大类注解&#xff1f;2.3 有关获取Bean参数的命名规则 3. 使用方法注解储存 Bean 对象3.1 方法注解储存对象的用法3.2 Bean的重命名3.3 同⼀类型多个 Bean 报错 …

Vue前端 更具router.js 中的meta的roles实现路由卫士,实现权限判断。

参考了之篇文章 1、我在登陆时获取到登录用户的角色名roles&#xff0c;并存入sessionStorage中&#xff0c;具体是在login页面实现&#xff0c;还是在menu页面实现都可以。在menu页面实现&#xff0c;可以显得登陆快一些。 2、编写router.js&#xff0c;注意&#xff0c;一个…

Maven 基础之依赖管理、范围、传递、冲突

文章目录 关于依赖管理坐标和 mvnrepository 网站pom.xml 中"引"包 依赖范围依赖传递依赖冲突 关于依赖管理 坐标和 mvnrepository 网站 在 maven 中通过『坐标』概念来确定一个唯一确定的 jar 包。坐标的组成部分有&#xff1a; 元素说明<groupId>定义当前…

【C/C++】用return返回一个函数

2023年8月13日&#xff0c;周日早上 我的第一篇使用了动态图的博客 #include<iostream> #include<windows.h>int loop(){int i0;while(1){Sleep(1000);std::cout<<i<<std::endl;}return 1; }int main(){std::cout<<"程序开始"<<…

tp5中的事务处理

使用事务首先要数据库支持事务&#xff1b; 如下MySQL数据库user表开启事务支持&#xff0c;即设计表->引擎设置为InnoDB->保存 事务处理 1. 数据库的表引擎需要是 InnoDB 才可以使用&#xff0c;如果不是调整即可&#xff1b; 2. 事务处理&#xff0c;需要执行多个 SQ…

ORB-SLAM2学习笔记7之System主类和多线程

文章目录 0 引言1 整体框架1.1 整体流程 2 System主类2.1 成员函数2.2 成员变量 3 多线程3.1 ORB-SLAM2中的多线程3.2 加锁 0 引言 ORB-SLAM2是一种基于特征的视觉SLAM&#xff08;Simultaneous Localization and Mapping&#xff09;系统&#xff0c;它能够从单个、双目或RBG…

K8S系列二:实战入门

I. 配置kubectl 1.1 什么是kubectl&#xff1f; 官方文档中介绍kubectl是&#xff1a; Kubectl 是一个命令行接口&#xff0c;用于对 Kubernetes 集群运行命令。Kubectl的配置文件在$HOME/.kube目录。我们可以通过设置KUBECONFIG环境变量或设置命令参数–kubeconfig来指定其他…

优雅地处理RabbitMQ中的消息丢失

目录 一、异常处理 二、消息重试机制 三、错误日志记录 四、死信队列 五、监控与告警 优雅地处理RabbitMQ中的消息丢失对于构建可靠的消息系统至关重要。下面将介绍一些优雅处理消息丢失的方案&#xff0c;包括异常处理、重试机制、错误日志记录、死信队列和监控告警等。…

分布式系统的 38 个知识点

天天说分布式分布式&#xff0c;那么我们是否知道什么是分布式&#xff0c;分布式会遇到什么问题&#xff0c;有哪些理论支撑&#xff0c;有哪些经典的应对方案&#xff0c;业界是如何设计并保证分布式系统的高可用呢&#xff1f; 1. 架构设计 这一节将从一些经典的开源系统架…