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

news2024/11/17 3:42:04

目录

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.coloradmin.cn/o/831878.html

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

相关文章

计算机网络(4) --- 协议定制

计算机网络&#xff08;3&#xff09; --- 网络套接字TCP_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/132035757?spm1001.2014.3001.5501 目录 1. 协议的基础知识 TCP协议通讯流程 ​编辑 2.协议 1.介绍 2.手写协议 1.内容 2.接口 …

Vulnhub: blogger:1靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.176 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.176 在80端口的/assets/fonts/目录下发现blog目录&#xff0c;访问后发现为wordpress 利用wpscan发现wordpress插件wpdisc…

WiFi爆破实战

提示&#xff1a;本文记录了博主的一次WiFi爆破实战 文章目录 写在前面一、将网卡连接Kali虚拟机二、网卡配置骤2.1 识别网卡2.2 净化环境2.3 启动监听2.4 探测周边WiFi 三、实施攻击3.1 对选定的目标WiFi实施监听3.2 发起DOS攻击3.3 实施爆破 写在最后 写在前面 提示&#xf…

LNMP搭建及论坛搭建

一、LNMP LNMP架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c; 能够提供动态Web站点服务及其应用开发环境。LNMP是一个缩写词&#xff0c;具体包括Linux操作系统、nginx网站服务器、MySQL数据库服务器、PHP&#xff08;或…

实用,3分钟免费生成中小学新生录取查询系统

在新学期开始之际&#xff0c;作为招生负责人&#xff0c;您是否已经做好准备来迎接新学年的招生工作呢&#xff1f;录取新生所需的任务包括成绩信息的录入、招生要求的核对以及新生录取信息的查询公布&#xff0c;这些繁重的工作给负责招生的老师带来了巨大的压力和挑战。 为…

Dockerfile构建LNMP镜像

建立工作目录 [rootlocalhost ~]# mkdir lnmp [rootlocalhost ~]# cd lnmp/ 编写Dockerfile文件 [rootlocalhost lnmp]# vim Dockerfile [rootlocalhost lnmp]# ll 总用量 4 -rw-r--r--. 1 root root 774 8月 3 14:54 Dockerfile [rootlocalhost lnmp]# vim Dockerfile #基础…

2023年华数杯A题

A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;其热导率可以直接测出&#xff1b;但是 单根隔热材料 A 纤维…

软件为什么要进行性能压力测试?

软件为什么要进行性能压力测试&#xff1f;随着软件应用的不断增多和复杂度的提高&#xff0c;软件的性能对用户体验和业务成功至关重要。性能问题可能导致软件运行缓慢、崩溃或无响应&#xff0c;给用户带来不便甚至损失。为了确保软件能够在高负载和压力下正常运行&#xff0…

spring-bean的生命周期和怎么配置spring-bean的后置处理器

&#x1f600;前言 本章是spring基于XML 配置bean系类中第6篇讲解spring-bean的生命周期和怎么配置spring-bean的后置处理器 &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希望我的文章可以帮助到大家…

Storm学习之使用官方Docker镜像快速搭建Storm运行环境

文章目录 0.前言搭建完的效果 1.教程1.1.docker 安装 zookeeper1.2. 安装 storm nimbus1.3.docker 安装 supervisor1.4.docker 安装 storm-ui1.5.查看已经启动的容器1.6.提交topology到 storm集群 2.总结3.参考文档 0.前言 Apache Storm 官方也出了Docker 镜像 https://hub.do…

Python3 高级教程 | Python3 CGI编程(二)

目录 一、什么是CGI 二、网页浏览 三、CGI架构图 四、Web服务器支持及配置 五、第一个CGI程序 六、HTTP头部 七、CGI环境变量 八、GET和POST方法 &#xff08;一&#xff09;使用GET方法传输数据 &#xff08;二&#xff09;简单的url实例&#xff1a;GET方法 &#x…

CSPM国标项目管理认证未来值得期待吗?

一、CSPM认证背景信息 CSPM是由全国项目管理标准化技术委员会&#xff08;SAC/TC343&#xff09;和中国国际人才交流基金会&#xff08;原外专局&#xff09;联合发起的项目管理专业认证。 首先&#xff0c;让我们了解下这两个国字号单位的来历。全国项目管理标准化技术委员会…

教你如何轻松做一个生鲜蔬果小程序商城

在现代社会中&#xff0c;生活节奏加快&#xff0c;人们对生鲜蔬果的需求也越来越高。为了方便用户购买生鲜蔬果&#xff0c;无需开发的生鲜蔬果配送小程序应运而生。今天&#xff0c;我们将向大家介绍如何在三分钟内搭建这样一个小程序。 首先&#xff0c;我们需要登录乔拓云平…

React 之 Redux - 状态管理

一、前言 1. 纯函数 函数式编程中有一个非常重要的概念叫纯函数&#xff0c;JavaScript符合函数式编程的范式&#xff0c;所以也有纯函数的概念 确定的输入&#xff0c;一定会产生确定的输出 函数在执行过程中&#xff0c;不能产生副作用 2. 副作用 表示在执行一个函数时&a…

轻松批量文件改名!一键翻译重命名文件夹/文件,省时高效!」

繁忙的数字时代&#xff0c;我们经常需要处理大量的文件和文件夹。而手动逐个更改文件名不仅费时费力&#xff0c;还容易出错。因此&#xff0c;我们为您带来了一款强大的工具——批量文件改名软件&#xff01;现在&#xff0c;您可以一键翻译重命名文件夹和文件&#xff0c;轻…

【设计模式——学习笔记】23种设计模式——访问者模式Visitor(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入要求传统方案 介绍基本介绍应用场景登场角色尚硅谷版本《图解设计模式》版本 案例实现案例一实现拓展 案例二(个人感觉这个案例较好)实现分析拓展一拓展二拓展三 总结额外知识双重分发 文章说明 案例引入 要求 测评系统需求&#xff1a;将观众分为男人和女人…

MySQL数据库——多表操作

文章目录 前言多表关系一对一关系一对多/多对一关系多对多关系 外键约束创建外键约束插入数据删除带有外键约束的表的数据删除外键约束 多表联合查询数据准备交叉连接查询内连接查询外连接查询左外连接查询右外连接查询满外连接查询 子查询子查询关键字ALL 关键字ANY 和 SOME 关…

2023年华数杯数学建模A题思路代码分析 - 隔热材料的结构优化控制研究

# 1 赛题 A 题 隔热材料的结构优化控制研究 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等 高科技领域中有着广泛的应用。 目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;其热导率可以直接测出&#xff1b;但是 单根隔热…

详解Spring Bean的生命周期

详解Spring Bean的生命周期 Spring Bean的生命周期包括以下阶段&#xff1a; 1. 实例化Bean 对于BeanFactory容器&#xff0c;当客户向容器请求一个尚未初始化的bean时&#xff0c;或初始化bean的时候需要注入另一个尚未初始化的依赖时&#xff0c;容器就会调用createBean进…

剑指Offer 05.替换空格

剑指Offer 05.替换空格 目录 剑指Offer 05.替换空格05.替换空格题目代码&#xff08;容易想到的&#xff09;利用库函数的方法题解&#xff08;时间复杂度更低&#xff09;面试&#xff1a;为什么java中String类型是不可变的 05.替换空格 题目 官网题目地址 代码&#xff08;…