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

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

相关文章

CentOS7---部署Tomcat和安装Jpress

总览需求 1. 简述静态网页和动态网页的区别。 2. 简述 Webl.0 和 Web2.0 的区别。 3. 安装tomcat8&#xff0c;配置服务启动脚本&#xff0c;部署jpress应用。1、简述静态网页和动态网页的区别 静态网页&#xff1a; 请求响应信息&#xff0c;发给客户端进行处理&#xff0c…

GraphGT: Machine Learning Datasets for Graph Generation and Transformation

一、文章来源 > Du Y, Wang S, Guo X, et al. Graphgt: Machine learning datasets for graph generation and transformation[C]//Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track (Round 2). 2021.二、概述 1、文章提出…

(学习笔记-进程管理)线程

在早期的操作系统都是以进程为独立运行的基本单位&#xff0c;直到后面&#xff0c;计算机科学家们提出了更小的能独立运行的基本单位&#xff1a;线程 为什么使用线程? 举个例子&#xff0c;假设要编写一个视频播放软件&#xff0c;那么软件功能的核心模块有三个&#xff1a…

APP测试基本流程及测试点总结

APP测试基本流程及测试点总结 APP自动化测试&#xff1a;APP自动化测试零基础必看教程&#xff0c;从零到一教你学会APP自动化&#xff0c;各种项目实战加源码等你来拿_哔哩哔哩_bilibiliAPP自动化测试零基础必看教程&#xff0c;从零到一教你学会APP自动化&#xff0c;各种项目…

【5G NR】逻辑信道、传输信道和物理信道的映射关系

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

如何推导椭圆的参数方程

椭圆基础知识 椭圆定义&#xff1a;椭圆上任意一点到两焦点的距离之和为2a 如何由椭圆定义推出椭圆标准方程呢&#xff1f; 如上图所示。 由定义可得已知条件为 ∣ M C 1 ∣ ∣ M C 2 ∣ 2 a 当 M 落在顶点 P 上时&#xff0c;可得另一已知条件 a 2 − b 2 c 2 当有了已…

导出LLaMA等LLM模型为onnx

通过onnx模型可以在支持onnx推理的推理引擎上进行推理&#xff0c;从而可以将LLM部署在更加广泛的平台上面。此外还可以具有避免pytorch依赖&#xff0c;获得更好的性能等优势。 这篇博客&#xff08;大模型LLaMa及周边项目&#xff08;二&#xff09; - 知乎&#xff09;进行…

idea+gradle阅读spring5.2.9源码之源码构建报错解决方案

注意 1、先确保gradle版本和spring、jdk版本对应 本文:gradle:5.6.4/spring 5.2.9/jdk1.8&#xff08;gradle和jdk都要先安装好&#xff0c;gradle还要配置好本地资源文件路径&#xff09; 2、原来项目乱了的话&#xff0c;先重新导入下载的源码项目 3、进入源码所在根目录&…

git之reflog分析

写在前面 本文一起看下reflog命令。 1&#xff1a;场景描述 在开发的过程中&#xff0c;因为修改错误&#xff0c;想要通过git reset命令恢复到之前的某个版本&#xff0c;但是选择提交ID错误&#xff0c;导致多恢复了一个版本&#xff0c;假定&#xff0c;该版本对应的内容…

【安装】阿里云轻量服务器安装Ubuntu图形化界面(端口号/灰屏问题)

阿里云官网链接 https://help.aliyun.com/zh/simple-application-server/use-cases/use-vnc-to-build-guis-on-ubuntu-18-04-and-20-04 网上搜了很多教程&#xff0c;但是我没在界面看到有vnc连接&#xff0c;后面才发现官网有教程。 其实官网很详细了&#xff0c;不过这里还是…

java程序打包成exe在无java环境执行

最近写了个小工具&#xff0c;但是java写的&#xff0c;给朋友用的时候不能直接用&#xff0c;因此学习了一下java打包成exe。 众所周知&#xff0c;java需要jvm环境&#xff0c;所以打包的时候需要把稍微轻一点的jre打包进去。接下来是详细步骤。 java程序打包成jar 这个在…

Linux性能学习(4.5):网络_TCP四次挥手内核参数优化

文章目录 1 四次挥手2 参数优化2.1 tcp_orphan_retries--->FIN报文重传次数2.2 tcp_max_orphans--->孤儿连接最大数量2.3 tcp_fin_timeout--->FINE_WAIT2状态等待时间2.4 tcp_max_tw_buckets2.5 tcp_tw_reuse--->复用未释放的端口 3 总结 参考资料&#xff1a; 1. …