【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{
	@Test
	public 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.mfbz.cn/a/65504.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

激光雷达测距和摄像头联合棋盘格反射率标定板

目前&#xff0c;激光雷达不仅在军事上起到了重要的作用&#xff0c;而且发挥其测程大、精度高、反应速度快、可靠性高等优点&#xff0c;在商业领域应用越来越广&#xff0c;发展越来越迅速&#xff0c;具有较高的实用价值和商业价值。车载三维成像激光雷达采用脉冲式测量原理…

基于大数据为底层好用准确性高的竞彩足球比分预测进球数分析软件介绍推荐

大数据与贝叶斯理论在足球比赛分析与预测中的应用 随着科技的不断进步&#xff0c;大数据分析在各个领域的应用也越来越广泛&#xff0c;其中包括体育竞技。足球比赛作为全球最受欢迎的运动之一&#xff0c;也借助大数据和贝叶斯理论来进行模型分析和预测。本文将通过结合贝叶…

html 计算器界面

其他链接&#xff1a; https://www.freecodecamp.org/news/how-to-build-an-html-calculator-app-from-scratch-using-javascript-4454b8714b98/ https://codepen.io/pen/tour/welcome/start 下面展示一些 内联代码片。 <!DOCTYPE html> <html lang"en">…

VIM 编辑器: Bram Moolenaar

VIM 用了很长时间&#xff0c; 个人的 VIM 配置文件差不多10年没有更新了。以前写程序的时候&#xff0c; 编辑都用这个。 linux kernel&#xff0c; boost规模的代码都不在话下。现在虽然代码写的少了&#xff0c;依然是我打开文件的首选。 现在用手机了&#xff0c;配个蓝牙键…

Elasticsearch官方测试数据导入

一、数据准备 百度网盘链接 链接&#xff1a;https://pan.baidu.com/s/1rPZBvH-J0367yQDg9qHiwQ?pwd7n5n 提取码&#xff1a;7n5n文档格式 {"index":{"_id":"1"}} {"account_number":1,"balance":39225,"firstnam…

元宇宙3D数字虚拟客服打造年轻化、数字化营销新品牌

融合了元宇宙、AI和云计算等技术的虚拟数字人&#xff0c;成为元宇宙数字内容交互的载体&#xff0c;将现实世界中的人与虚拟数字世界的场景、模型及产品链接起来&#xff0c;特别是为电力企业打造的电力元宇宙平台&#xff0c;带来营销宣传多重好处的同时&#xff0c;树立了数…

Idea小操作

Idea操作 idea提取内容构成一个方法 idea提取内容构成一个方法

计算机网络—HTTP

这里写目录标题 HTTP是什么HTTP常见状态码HTTP常见字段GET与POST的区别Get和Post是安全和幂等吗PUT幂等&#xff0c;不安全DELETE幂等&#xff0c;不是安全 HTTP缓存技术HTTP缓存实现技术 HTTP1.0优缺点和性能HTTP1.1优缺点和性能HTTP2优缺点和性能HTTP3优缺点和性能HTTP和HTTP…

Zabbix监控华为交换机DHCP接口地址池

一、背景 最近工作中遇到一个因为DHCP地址池满载、导致用户无法获取到IP地址的故障&#xff0c;所以在想通过zabbix 监控DHCP地址池的状态、当DHCP 地址池数量小于某个值时触发zabbix告警。 网上找了一下没有相关的文档、和对应的OID值、于是用Python 脚本的方式实现 二、实现效…

RocketMQ基本概念和高级原理

基础概念 消息模型 RocketMQ 主要由 Producer、Broker、Consumer 三部分组成&#xff0c;其中 Producer 负责生产消息&#xff0c;Consumer 负责消费消息&#xff0c;Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器&#xff0c;每个 Broker 可以存储多个 Topic…

【EI复现】基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【CHI】(一)基础概念

基于CHI issueF 本章介绍了CHI体系结构和术语。它包含以下部分&#xff1a; 体系结构概述拓扑结构术语事务分类一致性概述组件命名读数据来源 一、CHI架构 CHI架构是一个可扩展的、支持一致性的集线器接口和由多个组件使用的片上互连。根据系统要求的PPA&#xff08;perform…

HR专家:未来零代码开发将成求职热门,你准备好了吗?

一名五十五岁的农民&#xff0c;毫无程式设计经验&#xff0c;靠著自己自学零码开发&#xff0c;竟为他的家乡建起了六个数位资讯系统&#xff0c;其中一个更是带动了乡村“厕所革命”。阿里云说&#xff0c;“也许10-15年以前&#xff0c;公司的招聘会要求员工能够使用 WORD, …

Jmeter学习和一个关于jmeter获取X-XSRF-TOKEN时的坑

Jmeter学习和一个关于jmeter获取X-XSRF-TOKEN时的坑 现在想对一个接口做性能测试&#xff0c;需要测试它多个线程并发下的调用 1.新建测试计划和线程组 略 2.新建http接口 一个完整的http接口包含请求头和请求&#xff0c;这里就需要两个组件&#xff1a;HTTP request、HT…

Java 代码重试实现方式

Java 代码重试实现方式 一.方法内直接自动重试二.静态代理方式1.启动类2.接口3.实现4.静态代理5.单元测试类 三.JDK 动态代理1.代理类2.单元测试 四.CGLIB 动态代理1.动态代理类2.单元测试 五.手动 AOP1.自定义注解2.重试注解切面3.测试类4.单元测试方法 六.Spring Retry1.测试…

虚拟机centos7配置网络

虚拟机centos7配置网络 centos7克隆之后需要配置网络才能联网。 实验环境&#xff1a; VMware Workstation Pro 16CentOS 7系统虚拟机主机Windows 11系统 1.VMware网络模式设置为NAT模式 虚拟机–设置–网络适配器– ​​ ‍ 2.查看虚拟机 子网IP和网关IP 编辑–虚拟网…

pytorch Stream 多流处理

CUD Stream https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#c-language-extensions 中指出在kenel的调用函数中最后一个可选参数表示该核函数处在哪个流之中。 - 参数Dg用于定义整个grid的维度和尺寸&#xff0c;即一个grid有多少个block。为dim3类型。…

Openlayers实战:利用turf获取两个多边形的交集、差集、并集

在数据统计方面,通常会涉及到图形间的交集、并集、差集等。在Openlayers的实战中,我们显示两个多边形的交集、并集、差集的表现。通过turf的方式,可以快速的实现我们的数据处理,具体的请参考源代码。 效果图 源代码 /* * @Author: 大剑师兰特(xiaozhuanlan),还是大剑师…

MySQL 事务原理:事务概述、隔离级别、MVCC

文章目录 一、事务1.1 事务概述1.2 事务控制语句1.3 ACID特性 二、隔离级别2.1 隔离级别的分类2.1.1 读未提交&#xff08;RU&#xff09;2.1.2 读已提交&#xff08;RC&#xff09;2.1.3 可重复读&#xff08;RR&#xff09;2.1.4 串行化 2.2 命令2.3 并发读异常2.3.1 脏读2.3…

Redis实战案例25-附近商铺功能

1. GEO数据结构 Redis中Geohash功能应用 添加地理坐标 求两点之间距离 搜索天安门附近10km的火车站&#xff0c;按升序 2. 导入店铺数据到GEO Redis中存储店铺的信息&#xff0c;将店铺的id和经纬度坐标存到GEO数据类型中去&#xff0c;其中member存id&#xff0c;经纬度对应…