【java】【maven】【基础】MAVEN安装配置介绍

目录

1 下载

2 安装-windows为例

 3 配置环境变量

 3.1 JAVA_HOME

3.2 MAVEN_HOME

3.3 PATH

 3.4 验证

4 MAVEN基础概念

4.1 仓库概念

4.2 坐标概念

4.2.1 打开网址

 4.2.2 输入搜索内容junit

 4.2.3 找到对应API名称点击

 4.2.4 点击对应版本

 4.2.5 复制MAVEN坐标

4.3 配置本地仓库

4.3.1 初始默认仓库

4.3.2 修改仓库位置

4.4 远程默认仓库(了解)

 4.5 通过修改镜像仓库配置方式提速(必须)

 4.6 全局setting与用户setting(了解)

5 MAVEN项目

5.1 手工创建工程

5.1.1 MAVEN工程目录结构

5.1.2 构建命令

5.2 插件创建工程

 5.2.1 java工程

 5.2.2 web工程

5.3 IDEA创建工程

5.3.1 配置MAVEN

5.3.2 手工创建java项目

 5.3.2.1 编译运行(方式一)

 5.3.2.2 编译运行(方式二推荐)

5.3.3 原型创建java项目

5.3.4 原型创建web项目

5.3.5 插件

5.3.5.1 配置tomcat7

5.3.5.2 自定义tomcat7的端口

 5.3.5.3 做到配置

6 pom注释说明

7 依赖管理

7.1 依赖配置

7.2 依赖传递

7.3 可选依赖

7.4 排除依赖

7.5 依赖范围

8 生命周期与插件

8.1 生命周期

8.1.1 clean 生命周期

8.1.2 default生命周期

 8.1.3 site构建生命周期

8.2 插件


前言:Apache Maven是一个(特别是Java编程)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。本文是学习MAVEN的启蒙

 

 

1 下载

打开 官方网址下载页面  MAVEN下载链接网址

 

2 安装-windows为例

新增文件夹develop,解压下载的文件到当前目录

 3 配置环境变量

 3.1 JAVA_HOME

3.2 MAVEN_HOME

3.3 PATH

 

 3.4 验证

# cmd 执行
mvn

出现下图

 

4 MAVEN基础概念

4.1 仓库概念

 

 

 

4.2 坐标概念

 

 

4.2.1 打开网址

 https://mvnrepository.com

 4.2.2 输入搜索内容junit

 4.2.3 找到对应API名称点击

 4.2.4 点击对应版本

 

 4.2.5 复制MAVEN坐标

<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
</dependency>

4.3 配置本地仓库

4.3.1 初始默认仓库

在当前登录PC的用户名目录下有个.m2文件(前提得在cmd输入mvn才会生成)

4.3.2 修改仓库位置

1、在文件夹develop目录下新建一个文件夹repository

2、打开目录D:\develop\apache-maven-3.9.3\conf下的settings.xml

找到下图位置进行修改

3、修改到设置的仓库新位置

4.4 远程默认仓库(了解)

 4.5 通过修改镜像仓库配置方式提速(必须)

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

 4.6 全局setting与用户setting(了解)

5 MAVEN项目

5.1 手工创建工程

5.1.1 MAVEN工程目录结构

1、基本目录结构纯手工创建文件夹

2、在project\project-java\src\main\java\ 下创建 com\runa

3、在project\project-java\src\main\java\com\runa新建一个Demo.java文件

package com.runa;public class Demo{public String say(String name){System.out.println("hello " + name);return "hello " + name;}}

4、在project\project-java\src\test\java\ 下创建 com\runa

5、在project\project-java\src\test\java\com\runa新建一个DemoTest.java文件

package com.runa;import org.junit.Test;
import org.junit.Assert;public class DemoTest{@Testpublic void testSay(){Demo d = new Demo();String ret = d.say("maven");		Assert.assertEquals("hello maven",ret);}
}

 6、在project\project-java\下创建pom.xml(不要手写)

在D:\develop\apache-maven-3.9.3\lib  使用解压文件随便打开一个jar包,向上,点击查找

 复制

粘贴到新建的pom.xml文件当中去 

<?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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.runa</groupId><artifactId>project-java</artifactId><version>1.0.0</version><packaging>jar</packaging><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version>      </dependency></dependencies></project>

  

5.1.2 构建命令

 在project\project-java\目录下(pom.xml所在目录)打开cmd

1、编译 

mvn compile

 

 2、到maven仓库查看新增了很多文件

 3、当前目录下多了target文件夹

 执行下面命令可清理target文件夹(这里可暂时不执行)

mvn clean

 4、测试

mvn test

 

 

  执行成功会新增文件

 5、打包

mvn package

在test-classes里面有jar包 

6、 安装

mvn install

将打包的jar存储到本地仓库 

5.2 插件创建工程

 cmd进到此目录

 5.2.1 java工程

mvn archetype:generate  -DgroupId=com.runa -DartifactId=hellojava -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot  -DinteractiveMode=false

 

 

 5.2.2 web工程

mvn archetype:generate  -DgroupId=com.runa -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot  -DinteractiveMode=false

 

 

 

5.3 IDEA创建工程

5.3.1 配置MAVEN

1、创建一个空的项目

 

2、 修改sdk版本 

 idea-file-project struct进入文件结构---project  ---project sdk:[选择你需要切换的版本]【如果没有需要的版本,需要在下面】【Platform Settings】-SDKs 中添加相应的版本

 3、修改maven版本

Settings->Build ->Build tools - > maven

4、修改setting.xml配置 


 

5.3.2 手工创建java项目

 创建模块

  pom.xml添加依赖

    <dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>

为test添加package com.runa

 

 

 上图test下的resources是通过手工添加文件夹的类型变更也可通过这个方式改:

 或者到这里加 file-project struct进入文件结构---modules

   

package com.runa;public class Demo {public String say(String name){System.out.println("hello " + name);return "hello " + name;}
}
package com.runa;import junit.framework.Assert;public class DemoTest {public void testSay(){Demo d = new Demo();String ret = d.say("maven");Assert.assertEquals("hello maven", ret);}
}

 

 5.3.2.1 编译运行(方式一)

点击右侧的MAVEN--->Lifecycle  可执行编译测试等命令

 

 5.3.2.2 编译运行(方式二推荐)

 创建编译

 可继续再创建clean,区别在Run 那里

5.3.3 原型创建java项目

上图2个箭头是手动创建哪个文件夹自动生成对应类型的(我的idea是2023-01版本) 

5.3.4 原型创建web项目

 

 

 

 

5.3.5 插件

5.3.5.1 配置tomcat7

 到坐标库搜索tomcat插件

 

 

 目前maven3.8.8支持下图 3.9.3不行

 pom.xml

<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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.runa</groupId><artifactId>web01</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>web01 Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><!-- 构建  --><build><!-- 设置插件  --><plugins><!-- 具体插件  --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version></plugin></plugins></build>
</project>

 查看插件,如果没有出现点击那个刷新

 点击运行上图箭头

 

 上面地址可直接访问

5.3.5.2 自定义tomcat7的端口

<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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.runa</groupId><artifactId>web01</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>web01 Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><!-- 构建  --><build><!-- 设置插件  --><plugins><!-- 具体插件  --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins></build>
</project>

 5.3.5.3 做到配置

 

 

6 pom注释说明

<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/maven-v4_0_0.xsd"><!-- 指定pom的模型版本  --><modelVersion>4.0.0</modelVersion><!-- 打包方式, web工程打包未war java工程打包未jar  --><packaging>war</packaging><!-- 组织id  --><groupId>com.runa</groupId><!-- 项目id 一般项目名称 --><artifactId>web01</artifactId><!-- 版本号release(完成版) snapshot (开发版)  --><version>1.0-SNAPSHOT</version><name>web01 Maven Webapp</name><url>http://maven.apache.org</url><!-- 设置工程所有依赖  --><dependencies><!-- 具体依赖  --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><!-- 构建  --><build><!-- 设置插件  --><plugins><!-- 具体插件  --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins></build>
</project>

7 依赖管理

7.1 依赖配置

 

7.2 依赖传递

将项目web01配置到java02的pom.xml

 

 

 

7.3 可选依赖

 

7.4 排除依赖

 选择你的项目依赖位置

 

 

7.5 依赖范围

 

 

8 生命周期与插件

8.1 生命周期

 

 

8.1.1 clean 生命周期

 

8.1.2 default生命周期

 8.1.3 site构建生命周期

8.2 插件

 上官网

 

 build部分,注意打的是test,

<?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.runa</groupId><artifactId>java01</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency></dependencies><!-- 构建  --><build><!-- 设置插件  --><plugins><!-- 具体插件  --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><goals><goal>jar</goal></goals><phase>generate-test-resources</phase></execution></executions></plugin></plugins></build>
</project>

 

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

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

相关文章

爬虫007_python中的输出以及格式化输出_以及输入---python工作笔记025

首先看输出 输出这里,注意不能直接上面这样,18需要转换成字符串 可以看到python中这个字符串和数字一起的时候,数字要转换一下成字符串. 然后这里要注意%s 和%d,这个s指的是字符串,d指的是数字 注意后面的内容前面要放个% ,然后多个参数的话,那么这里用(),里面用,号隔开 然…

windows服务器iis PHP套件出现FastCGI等错误解决方法汇总

如果您的服务器安装了PHP套件&#xff0c;出现了无法打开的情况&#xff0c;请参照如下办法解决&#xff1a; 首先&#xff0c;需要设置IIS允许输出详细的错误信息到浏览器&#xff0c;才好具体分析 错误一&#xff1a; 处理程序“FastCGI”在其模块列表中有一个错误模块“Fast…

新手用户选择阿里云服务器地域、实例、带宽、操作系统经验参考

无论是个人还是企业用户&#xff0c;部署自己的网站或者APP客户端、小程序等&#xff0c;都需要用到服务器&#xff0c;现在流行的都是使用云服务器&#xff0c;考虑到性价比大家现在都喜欢选择阿里云服务器。但是新手用户往往在面对阿里云服务器地域、实例、带宽、操作系统等众…

RTC晶振两端要不要挂电容

发现GD32的RTC晶振两端需要挂电容&#xff0c;STM32的RTC晶振两端不需要挂电容。 STM32的RTC晶振两端&#xff0c;不需要挂电容&#xff0c;这样晶振启振很容易&#xff0c;挂大了&#xff0c;却难启动&#xff0c;且温度越低&#xff0c;启动越难。 有人说负载电容为6pF的晶振…

SQL分类及通用语法数据类型

一、SQL分类 DDL: 数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改DQL: 数据查询语言&#xff0c;用来查询数据库中表的记录DCL: 数据控制语言&#xff0c;用来创建数据库…

Go语言开发者的Apache Arrow使用指南:读写Parquet文件

Apache Arrow是一种开放的、与语言无关的列式内存格式&#xff0c;在本系列文章[1]的前几篇中&#xff0c;我们都聚焦于内存表示[2]与内存操作[3]。 但对于一个数据库系统或大数据分析平台来说&#xff0c;数据不能也无法一直放在内存中&#xff0c;虽说目前内存很大也足够便宜…

SpringBoot

SpringBoot 微服务阶段 javase&#xff1a; OOPmysql&#xff1a;持久化htmlcssjsjquery框架javaweb&#xff1a;MVC 三层架构 的网站ssm&#xff1a;简化了开发流程 配置也相对复杂Spring&#xff1a;SpringBoot&#xff1a;内嵌Tomact 微服务架构springCloud SpringBoot S…

云原生全栈体系(二)

Kubernetes实战入门 第一章 Kubernetes基础概念 一、是什么 我们急需一个大规模容器编排系统kubernetes具有以下特性&#xff1a; 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器&#xff0c;如果进入容器的流量很大&#xff0c;Kubernetes 可以负…

CSS调色网有哪些

本文章转载于湖南五车教育&#xff0c;仅用于学习和讨论&#xff0c;如有侵权请联系 1、https://webgradients.com/ Wbgradients 是一个在线调整渐变色的网站 &#xff0c;可以根据你想要的调整效果&#xff0c;同时支持复制 CSS 代码&#xff0c;可以更好的与开发对接。 Wbg…

经典CNN(三):DenseNet算法实战与解析

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊|接辅导、项目定制 1 前言 在计算机视觉领域&#xff0c;卷积神经网络&#xff08;CNN&#xff09;已经成为最主流的方法&#xff0c;比如GoogleNet&#xff0c;…

opencv 30 -图像平滑处理01-均值滤波 cv2.blur()

什么是图像平滑处理? 图像平滑处理&#xff08;Image Smoothing&#xff09;是一种图像处理技术&#xff0c;旨在减少图像中的噪声、去除细节并平滑图像的过渡部分。这种处理常用于预处理图像&#xff0c;以便在后续图像处理任务中获得更好的结果。 常用的图像平滑处理方法包括…

C++ 左值和右值

C 左值和右值 左值、右值左值引用、右值引用std::move()std::move()的实现引用折叠 完美转发forward()的实现函数返回值是左值还是右值如何判断一个值是左值还是右值 左值、右值 在C11中所有的值必属于左值、右值两者之一&#xff0c;右值又可以细分为纯右值、将亡值。在C11中…

OpenShot 发布 2.3.2 版本啦!

导读OpenShot 2.3.3 发布了&#xff0c;Openshot 是 linux 的 Gnome 桌面一个非线性视频编辑器&#xff0c;有许多功能&#xff1a;你可以重划大小&#xff0c;修剪或者剪切视频&#xff0c;同时有实时的预览&#xff0c;图片覆盖&#xff0c;标题模板&#xff0c;视频解码&…

web前端框架Javascript之JavaScript 异步编程史

早期的 Web 应用中&#xff0c;与后台进行交互时&#xff0c;需要进行 form 表单的提交&#xff0c;然后在页面刷新后给用户反馈结果。在页面刷新过程中&#xff0c;后台会重新返回一段 HTML 代码&#xff0c;这段 HTML 中的大部分内容与之前页面基本相同&#xff0c;这势必造成…

PHP 前后端分离,运行配置

H5 WEB目录:安装 yarn install、npm install &#xff08;依赖包&#xff09; 在电脑&#xff1a;安装nodejs Composer下载 &#xff1a;https://getcomposer.org/

性能测试,python 内存分析工具 -memray

Memray是一个由彭博社开发的、开源内存剖析器&#xff1b;开源一个多月&#xff0c;已经收获了超8.4k的star&#xff0c;是名副其实的明星项目。今天我们就给大家来推荐这款python内存分析神器。 ​ Memray可以跟踪python代码、本机扩展模块和python解释器本身中内存分配&#…

考完软考,有什么备考心得和学习经验可以分享吗?

我考过信息系统项目管理师&#xff0c;可以给你一些备考建议。这是软考高级资格考试的一门科目&#xff0c;考试包括三个部分。如果你觉得难度较大&#xff0c;可以先从系统集成考试开始&#xff0c;积累经验再去考高级科目。考试内容包括信息系统项目管理综合知识、信息系统项…

C语言中char、short、int、long各占多少字节

1byte 8bit 一个字节占8个二进制位 windows操作系统&#xff0c;32位机中&#xff0c; char&#xff1a; 1个字节 short&#xff1a; 2个字节 int&#xff1a; 4个字节 long&#xff1a; 4个字节 以下是windows操作系统&#xff0c;32位机下的代码测试结果&#xff08;3…

深入理解机器学习与极大似然之间的联系

似然函数&#xff1a;事件A的发生含着有许多其它事件的发生。所以我就把这些其它事件发生的联合概率来作为事件A的概率&#xff0c;也就是似然函数。数据类型的不同&#xff08;离散型和连续性&#xff09;就有不同的似然函数 极大似然极大似然估计方法&#xff08;Maximum Li…

MongoDB文档--基本安装-linux安装(mongodb环境搭建)-docker安装(挂载数据卷)-以及详细版本对比

阿丹&#xff1a; 前面了解了mongodb的一些基本概念。本节文章对安装mongodb进行讲解以及汇总。 官网教程如下&#xff1a; 安装 MongoDB - MongoDB-CN-Manual 版本特性 下面是各个版本的选择请在安装以及选择版本的时候参考一下&#xff1a; MongoDB 2.x 版本&#xff1a…