Maven下载、安装、配置与使用教程

Maven下载、安装、配置与使用教程

目录

  1. 简介
  2. 下载与安装
  3. 配置
  4. 使用示例
  5. 总结

1. 简介

Maven是一个项目管理工具,主要用于Java项目。它可以自动化构建过程,包括编译、测试、打包和部署等。Maven使用POM(Project Object Model)文件来管理项目的依赖关系和构建配置。

2. 下载与安装

下载

访问Maven官网(https://maven.apache.org/download.cgi)下载最新版的Maven。选择适合自己操作系统的版本,例如Windows系统选择bin.zip文件。

安装

  1. 解压下载的文件到任意目录,例如C:\Program Files\Apache Maven
  2. 将Maven的bin目录添加到系统环境变量PATH中。

3. 配置

在Maven安装目录下创建conf文件夹,并在其中创建settings.xml文件。编辑settings.xml文件,添加以下内容:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0http://maven.apache.org/xsd/settings-1.0.0.xsd"><localRepository>D:\maven_repo</localRepository>
</settings>

这里将本地仓库设置为D:\maven_repo

4. 使用示例

创建一个简单的Java项目

  1. 创建一个名为my-app的文件夹作为项目根目录。
  2. my-app目录下创建一个名为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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>my-app</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>
</project>
  1. my-app目录下创建一个名为src的文件夹,然后在src目录下创建一个名为main的文件夹,再在main目录下创建一个名为java的文件夹。在java目录下创建一个名为com的文件夹,再在com目录下创建一个名为example的文件夹。在example目录下创建一个名为App.java的文件,添加以下内容:
package com.example;public class App {public static void main(String[] args) {System.out.println("Hello, Maven!");}
}
  1. my-app目录下创建一个名为test的文件夹,然后在test目录下创建一个名为java的文件夹。在java目录下创建一个名为com的文件夹,再在com目录下创建一个名为example的文件夹。在example目录下创建一个名为AppTest.java的文件,添加以下内容:
package com.example;import org.junit.Test;
import static org.junit.Assert.assertEquals;public class AppTest {@Testpublic void testApp() {String result = App.sayHello();assertEquals("Hello, Maven!", result);}
}
  1. 修改App.java文件,添加一个名为sayHello的方法:
public static String sayHello() {return "Hello, Maven!";
}

使用Maven构建项目

  1. 打开命令行窗口,切换到my-app目录。
  2. 运行mvn clean install命令,Maven会自动下载所需的依赖库,并编译、测试、打包项目。
  3. 如果一切正常,会在target目录下生成一个名为my-app-1.0-SNAPSHOT.jar的文件。

5. 总结

本教程介绍了如何下载、安装、配置和使用Maven。通过一个简单的Java项目示例,展示了如何使用Maven进行项目管理。希望对你有所帮助!

文档下载

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

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

相关文章

Python的登录注册界面跳转汽车主页面

1.登录注册界面的代码&#xff1a; import tkinter as tk from tkinter import messagebox,ttk from tkinter import simpledialog from ui.car_ui import start_car_ui# 设置主题风格 style ttk.Style() style.theme_use("default") # 可以根据需要选择不同的主题…

切莫被人工智能的洪流吞噬

切莫被人工智能的洪流吞噬 当今社会似乎正在被“人工智能”的概念淹没&#xff0c;各行各业也都期望能与其挂钩&#xff0c;彷佛这就是新世代下的灵药&#xff0c;有人把这一现象称为“旧互联网时代的新革命”。但是我们&#xff0c;这一现象的缔造者&#xff0c;又处于这洪流…

Linux基础指令文件管理004

本章主要讲述如何查找文件。 操作系统&#xff1a; CentOS Stream 9 操作步骤&#xff1a; 指令find [rootlocalhost a]# find -name "*.txt"查找当前目录下的所有.txt文件 ./b/3.txt ./b/4.txt ./1.txt[rootlocalhost a]# find . #查找文件 . ./b ./b/c ./b/3.t…

360数字安全:2024年2月勒索软件流行态势分析报告

勒索软件传播至今&#xff0c;360反勒索服务已累计接收到数万勒索软件感染求助。随着新型勒索软件的快速蔓延&#xff0c;企业数据泄露风险不断上升&#xff0c; 勒索金额在数百万到近亿美元的勒索案件不断出现。勒索软件给企业和个人带来的影响范围越来越广&#xff0c;危害性…

【Android面试八股文】Android两种序列化方式Serialzable和Parcelable有什么区别?为什么Intent传递对象需要序列化?

文章目录 序列Parcelable,Serializable的区别?这道题想考察什么?考察的知识点考生应该如何回答Bunder传递对象为什么需要序列化?Serializable,简单易用基本使用serialVersionUIDParcelable , 速度至上Parcel区别测试速度对比测试方法结果总结序列Parcelable,Serializable的…

BOT算不算作弊

https://arxiv.org/abs/2406.04271 1. 引言 介绍大型语言模型&#xff08;LLMs&#xff09;在推理任务中的局限性。 概述现有推理方法的分类和局限性&#xff1a;单次查询推理和多查询推理。 提出Buffer of Thoughts (BoT) 框架&#xff0c;旨在提高LLMs的推理准确性、效率和…

npm安装依赖过慢

今天在使用npm安装taro框架的依赖时&#xff0c;速度慢到吐血&#xff0c;使用了淘宝镜像源依然很慢&#xff0c;安装一个多小时没反应&#xff0c;最后清理了缓存再次安装速度就快很多了&#xff0c;因此解决方法大致有两种&#xff1a; 使用淘宝镜像源 原域名&#xff1a; ht…

计算机网络--计算机网络概念

计算机网络--计算机网络概念 计算机网络--物理层 计算机网络--数据链路层 计算机网络--网络层 计算机网络--传输层 计算机网络--应用层 0.计算机网络简介 0.2 计算机网络的功能简介 数据通信(连通性)资源共享&#xff1a; 软件硬件数据 分布式处理 多台计算机各自承担同…

项目-双人五子棋对战:匹配模块的实现(4)

完整代码见: 邹锦辉个人所有代码: 测试仓库 - Gitee.com 在上一篇中, 我们已经讲到了匹配模块中前后端的接口约定, 也讲到了前后端它们是怎么完成发送请求, 接收请求, 处理响应, 返回响应这个过程的. 在这一篇中, 我们将对匹配模块用到的一些组件, 进行讲解. 后端代码 匹配器…

【Linux取经路】网络套接字编程——初识篇

文章目录 一、端口号1.1 认识端口号1.2 端口号 VS 进程 PID 二、认识 TCP 协议三、认识 UDP四、网络字节序列五、socket 编程接口5.1 常用 API5.2 sockaddr 结构 六、结语 一、端口号 网络通信的本质是应用层软件进行数据的发送和接受&#xff0c;软件在启动之后&#xff0c;本…

spring boot中常用的多线程案例

在Spring Boot中&#xff0c;多线程的应用场景广泛&#xff0c;尤其是在需要提高系统并发处理能力和资源利用率的场景下。以下是一些Spring Boot中常用的多线程案例&#xff0c;并结合参考文章中的相关数字和信息进行说明&#xff1a; 1.异步任务处理 案例描述: 在Spring Bo…

安徽京准 NTP时钟同步服务器具体配置方法是什么?

安徽京准 NTP时钟同步服务器具体配置方法是什么&#xff1f; 安徽京准 NTP时钟同步服务器具体配置方法是什么&#xff1f; 可以使用特权终结点 (PEP) 来更新 Azure Stack Hub 中的时间服务器。 使用可解析为两个或更多个 NTP&#xff08;网络时间协议&#xff09;服务器 IP 地…

网络安全快速入门(十五)(下)手动创建用户及su,sudo命令

15.8 序言 前面我们已经大概了解了创建用户一些相关文件&#xff0c;接下来我们来手动创建用户&#xff0c;话不多说&#xff0c;我们直接开搞&#xff01;&#xff01;&#xff01; 15.9 手动创建用户&#xff1a; 一般来讲&#xff0c;我们创建用户通过useradd和passwd命令来…

Go每日一库之rotatelogs

介绍 Golang的rotatelogs库是一个用于日志轮转&#xff08;log rotation&#xff09;的库。日志轮转是一种常用的日志管理策略&#xff0c;它允许开发者将日志按照一定规则分割成多个文件&#xff0c;以便于管理和分析。通过使用rotatelogs库&#xff0c;开发者可以方便地实现…

python数据分析-心脏衰竭分析与预测

研究背景 人的心脏有四个瓣膜&#xff0c;主动脉银、二尖、肺动脉和三尖源 不管是那一个膜发生了病变&#xff0c;都会导致心脏内的血流受到影响&#xff0c;这就是通常所说的心脏期膜病&#xff0c;很多是需要通过手术的方式进行改善的。随着人口老龄化的加剧,&#xff0c;心…

Java基础_异常

Java基础_异常 异常体系介绍编译时异常和运行时异常异常的作用异常的处理方式JVM默认的处理方式自己处理&#xff08;捕获异常&#xff09;try...catch灵魂四问Throwable的成员方法 抛出处理 综合练习自定义异常来源Gitee地址 异常体系介绍 异常是什么&#xff1f; 程序中可能出…

【Java】String类 -- 重要概念!!!

// 源码 public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence {/** The value is used for character storage. */private final char value[];/** Cache the hash code for the string */private int hash; // Default to 0 /…

RTOS笔记--信号量+互斥量+事件组

信号量的本质 信号量是一个特殊的队列&#xff0c;但并不涉及数据传输&#xff0c;因此不需要读写位置和发送者列表&#xff0c;但是多了一个最大计数值。 个人理解&#xff1a;信号量类似一个加入了保护机制的全局变量&#xff0c;不会因为中断切换的原因而导致数据出错。 信号…

Steam游戏如何选择适合的服务器

在Steam平台上&#xff0c;玩家可以享受到来自世界各地开发者的游戏作品。然而&#xff0c;要获得最佳的游戏体验&#xff0c;选择合适的服务器至关重要。本文将从网络延迟、服务器位置、游戏类型和个人偏好等多个方面&#xff0c;为玩家提供选择Steam游戏服务器的实用指南。 如…

k8s挂载配置文件(通过ConfigMap方式)

一、ConfigMap简介 K8s中的ConfigMap是一种用于存储配置数据的API对象&#xff0c;属于Kubernetes中的核心对象。它用于将应用程序的配置信息与容器镜像分离&#xff0c;以便在不重新构建镜像的情况下进行配置的修改和更新。ConfigMap可以存储键值对、文本文件或者以特定格式组…