当前位置: 首页 > article >正文

Maven工具的下载,安装与使用

Maven的下载安装配置与使用文章目录Maven的下载安装配置与使用前言一、Maven简介1.什么是 Maven2.Maven的核心概念二、Maven 安装与配置以Windows为例Linux/macOS类似1.下载Maven2. 安装 Maven3. 验证安装三、Maven 项目结构,pom.xml,setting.xml1. 标准项目结构2.pom.xml 示例3.setting.xml四、Maven常用命令五、Maven 依赖管理1.依赖范围Scope2. 排除冲突依赖六、常见问题解决总结前言一、Maven简介1.什么是 Maven1.Apache Maven 是一个项目管理工具主要用于 Java 项目的构建、依赖管理 和 项目信息管理。2.核心功能a.自动化构建编译、测试、打包、部署。b.依赖管理自动下载和管理第三方库。c.标准化项目结构。2.Maven的核心概念概念说明POM (Project Object Model)项目配置文件 pom.xml定义项目依赖、构建配置等。坐标 (Coordinates)通过 groupId, artifactId, version 唯一标识一个依赖包。仓库 (Repository)本地仓库本地缓存目录默认 ~/.m2/repository中央仓库Maven 官方远程仓库存储所有公共依赖私服企业自建仓库如 Nexus。生命周期 (Lifecycle)构建流程的标准化阶段如 clean, compile, test, package, install。二、Maven 安装与配置以Windows为例Linux/macOS类似1.下载Mavenapache官网下载https://maven.apache.org/download.cgi2. 安装 Maven解压压缩包到指定目录如 E:\apache-maven-3.8.1。配置环境变量1.新建系统变量 MAVEN_HOME值为 Maven 解压路径如E:\apache-maven-3.8.1。2.编辑 Path 变量添加 %MAVEN_HOME%\bin或E:\apache-maven-3.8.1-bin\apache-maven-3.8.1\bin。3. 验证安装打开命令行输入以下命令,结果如下图表示安装成功mvn-v三、Maven 项目结构,pom.xml,setting.xml1. 标准项目结构my-project/ ├── src/ │ ├── main/ │ │ ├── java/# 主代码目录│ │ └── resources/# 配置文件目录│ └── test/ │ ├── java/# 测试代码目录│ └── resources/# 测试配置文件├── target/# 构建输出目录└── pom.xml# 项目配置文件2.pom.xml 示例projectmodelVersion4.0.0/modelVersion!-- 坐标 --groupIdcom.example/groupIdartifactIdmy-project/artifactIdversion1.0.0/version!-- 依赖管理 --dependenciesdependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope/dependency/dependencies!-- 构建配置 --buildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.11.0/versionconfigurationsource21/sourcetarget21/target/configuration/plugin/plugins/build/project3.setting.xml1.本地仓库localRepository本地机器上的依赖存储目录默认 ~/.m2/repository。本地仓库的依赖可以实现跨本地项目的共享依赖引用中央仓库Maven Centralhttps://mvnrepository.com/镜像服务器(中央仓库)mirroraliyun镜像。3.profile用于定义一组可动态激活的配置规则它允许开发者根据不同的环境如开发、测试、生产或需求如不同操作系统、JDK 版本灵活切换构建行为。profile 是 Maven 实现多环境配置管理的核心机制。a.核心作用场景说明多环境适配根据环境变量、操作系统等条件自动切换仓库地址、依赖版本、插件配置等。条件化构建仅在特定条件下启用某些插件或参数如跳过测试、启用代码覆盖率检查。全局配置复用在 settings.xml 中定义的 profile 可作用于所有项目与 pom.xml 中的 profile 不同。b.配置结构settingsprofiles!-- 定义一个名为dev的 Profile --profile!-- 唯一标识符通过-P或条件激活时使用 --iddev/id!-- 激活条件可选满足条件时自动激活 --activationactiveByDefaulttrue/activeByDefault!-- 默认激活 --propertynameenv/name!-- 当存在-Denvdev 时激活 --valuedev/value/propertyosfamilyWindows/family!-- 仅在 Windows 系统激活 --/os/activation!-- Profile 的具体配置内容 --propertiesdatabase.urljdbc:mysql://localhost:3306/dev_db/database.url/propertiesrepositoriesrepositoryidaliyun-maven/idurlhttps://maven.aliyun.com/repository/public/url/repository/repositoriespluginRepositoriespluginRepositoryidaliyun-plugins/idurlhttps://maven.aliyun.com/repository/public/url/pluginRepository/pluginRepositories/profile/profiles/settingsc.关键配置项解析配置项说明idProfile 的唯一标识符如 dev, prod, jdk11。activation定义自动激活条件如系统属性、文件存在、操作系统等。properties定义键值对参数可在 pom.xml 中通过 ${key} 引用。repositories覆盖默认的远程仓库地址常用于私服配置。pluginRepositories覆盖插件的远程仓库地址。d.激活方式自动激活通过 activation条件activation!-- 当系统属性env的值为prod时激活 --propertynameenv/namevalueprod/value/property!-- 当文件src/env/prod存在时激活 --fileexistssrc/env/prod/exists/file!-- 仅在 JDK21或更高版本激活 --jdk21/jdk/activation手动激活:命令行指定通过-P参数激活指定 Profile mvn cleaninstall-Pdev,test全局默认激活在 settings.xml 中配置activeProfilesactiveProfiledev/activeProfile/activeProfiles典型应用场景:场景 1多环境数据库配置场景 2: 为不同操作系统配置不同插件xml注意事项:优先级规则1.settings.xml 中的 profile 优先级低于 pom.xml 2.中的 profile。同文件中多个 profile 的配置会合并重复项以最后定义的为准。调试 Profile1.使用 mvn help:active-profiles 查看当前激活的 Profile。2.使用 mvn help:all-profiles 列出所有可用 Profile。避免滥用1.若配置仅针对单个项目应优先在 pom.xml 中定义 Profile。2.settings.xml 中的 Profile 适用于全局配置如企业私服地址。四、Maven常用命令命令说明mvn clean清理 target 目录。mvn compile编译主代码。mvn test运行单元测试。mvn package打包项目生成 JAR/WAR 文件到 target 目录。mvn install安装项目到本地仓库供其他项目依赖。mvn dependency:tree查看项目依赖树。mvn archetype:generate使用模板生成新项目。五、Maven 依赖管理1.依赖范围ScopeScope说明compile默认值参与编译、测试、运行。test仅参与测试阶段如 JUnit。provided由 JDK 或容器提供如 Servlet APIruntime仅参与运行阶段如 JDBC 驱动。2. 排除冲突依赖dependencygroupIdorg.example/groupIdartifactIdexample-lib/artifactIdversion1.0.0/versionexclusionsexclusiongroupIdconflict-group/groupIdartifactIdconflict-artifact/artifactId/exclusion/exclusions/dependency六、常见问题解决依赖下载失败原因网络问题或仓库地址错误。解决1.检查 Maven 配置文件 settings.xml位于 conf/ 目录。2.更换镜像源如阿里云镜像mirroridaliyun/idmirrorOf*/mirrorOfnameAliyun Maven Mirror/nameurlhttps://maven.aliyun.com/repository/public/url/mirror构建速度慢优化方式1.增加 Maven 内存在 MAVEN_OPTS 环境变量中设置 -Xmx1024m。2.使用并行构建mvn -T 4 clean install4 线程。总结Maven 是 Java 生态的核心工具熟练掌握可极大提升开发效率。推荐 IDE 集成IntelliJ IDEA/Eclipse 均支持 Maven 项目无缝操作。延伸学习结合 Nexus 搭建私服、学习 Gradle 作为补充构建工具。

相关文章:

Maven工具的下载,安装与使用

Maven的下载,安装配置与使用 文章目录Maven的下载,安装配置与使用前言一、Maven简介1.什么是 Maven?2.Maven的核心概念二、Maven 安装与配置(以Windows为例,Linux/macOS类似)1.下载Maven2. 安装 Maven3. 验…...

pwn刷题记录

NSS-[CISCN 2023 初赛]funcanary【canary】 NSSCTF | 在线CTF平台 下载附件,直接去checksec文件,查看文件二进制保护机制再通过file命令查看文件的信息 ida64打开,首先查看main函数 void __fastcall __noreturn main(__int64 a1, char **a2, char **a3) {__pid_t v3; //…...

git管理github上的repository(二)

本文章主要介绍如何使用git管理一个project,并更新到github上1. 创建github仓库登录github账户;在右上角点击“”号,选择“New repository”;填写仓库名称、描述(可选),选择是否为公共或私有仓库…...

ubuntu vnc 问题汇总

第一部分:使用虚拟显示管理器 如何让树莓派不连接显示器,也能在windows上用vnc访问? 如题配置完成后,树莓派就可以在不连接物理显示器的情况下通过VNC远程访问了。 1. 安装必要的包 sudo apt install xserver-xorg-video-dumm…...

Camera:实时监控与数据交互的智能设备服务

Camera:实时监控与数据交互的智能设备服务 【免费下载链接】Camera The EdgeX Camera Device Service is developed to control/communicate ONVIF-compliant cameras accessible via http in an EdgeX deployment 项目地址: https://gitcode.com/gh_mirrors/came…...

AnOpc:轻松实现OPC操作的利器

AnOpc:轻松实现OPC操作的利器 【免费下载链接】AnOpc An Opc Library and a command line to perform OPC operations with ease and transparency among different protocols. Currently supports synchronous operation over UA and DA protocols. 项目地址: ht…...

python实现鸟类识别系统实现方案

鸟类识别系统实现方案 1. 系统概述 本系统使用两种机器学习模型(线性判别分析和卷积神经网络)实现鸟类识别,支持识别10种常见鸟类。系统包含数据预处理、特征提取、模型训练和预测评估等完整流程。 2. 数据集准备 使用CUB-200-2011鸟类数据集子集(10类),每类包含60张…...

Kong/mashape-oauth项目中的OAuth协议详解

Kong/mashape-oauth项目中的OAuth协议详解 【免费下载链接】mashape-oauth OAuth Modules for Node.js - Supporting RSA, HMAC, PLAINTEXT, 2,3-Legged, 1.0a, Echo, XAuth, and 2.0 项目地址: https://gitcode.com/gh_mirrors/ma/mashape-oauth 前言 OAuth协议是现代…...

URLImage源码解读:如何设计高效的图片缓存系统

URLImage源码解读:如何设计高效的图片缓存系统 【免费下载链接】url-image AsyncImage before iOS 15. Lightweight, pure SwiftUI Image view, that displays an image downloaded from URL, with auxiliary views and local cache. 项目地址: https://gitcode.c…...

Laravel Sweet Alert与SweetAlert2深度整合:功能扩展与最佳实践

Laravel Sweet Alert与SweetAlert2深度整合:功能扩展与最佳实践 【免费下载链接】sweet-alert A BEAUTIFUL, RESPONSIVE, CUSTOMIZABLE, ACCESSIBLE (WAI-ARIA) REPLACEMENT FOR JAVASCRIPTS POPUP BOXES FOR LARAVEL 项目地址: https://gitcode.com/gh_mirrors/s…...

LNbits资金来源配置:支持多种闪电网络后端的灵活选择

LNbits资金来源配置:支持多种闪电网络后端的灵活选择 【免费下载链接】lnbits LNbits, free and open-source Lightning wallet and accounts system. 项目地址: https://gitcode.com/gh_mirrors/ln/lnbits LNbits是一款免费开源的闪电网络钱包和账户系统&am…...

SimpleLightbox入门教程:从安装到实现响应式图片画廊的5个步骤

SimpleLightbox入门教程:从安装到实现响应式图片画廊的5个步骤 【免费下载链接】simplelightbox Touch-friendly image lightbox for mobile and desktop 项目地址: https://gitcode.com/gh_mirrors/si/simplelightbox SimpleLightbox是一款轻量级且功能强大…...

制作专业级CHM文档:cppreference2mshelp关键词索引与目录生成技巧

制作专业级CHM文档:cppreference2mshelp关键词索引与目录生成技巧 【免费下载链接】cppreference2mshelp cppreference.com html archive converter to microsoft help (for Visual Studio 2012) and chm help (for Windows) 项目地址: https://gitcode.com/gh_m…...

FALCONN性能调优指南:如何为不同数据集选择最佳参数

FALCONN性能调优指南:如何为不同数据集选择最佳参数 【免费下载链接】FALCONN FAst Lookups of Cosine and Other Nearest Neighbors (based on fast locality-sensitive hashing) 项目地址: https://gitcode.com/gh_mirrors/fa/FALCONN FALCONN(…...

Patching插件架构深度剖析:Keystone引擎如何赋能二进制修补

Patching插件架构深度剖析:Keystone引擎如何赋能二进制修补 【免费下载链接】patching An Interactive Binary Patching Plugin for IDA Pro 项目地址: https://gitcode.com/gh_mirrors/pa/patching Patching是一款专为IDA Pro设计的交互式二进制修补插件&am…...

Flyimg高级配置指南:自定义ImageMagick参数实现专业级图片优化

Flyimg高级配置指南:自定义ImageMagick参数实现专业级图片优化 【免费下载链接】flyimg Dockerized application to resize and crop images on the fly. Get optimised images with AVIF, WebP, MozJPEG or PNG using ImageMagick, with an efficient caching syst…...

Secator常见问题解决:工具安装失败、任务卡死与性能优化的实用技巧

Secator常见问题解决:工具安装失败、任务卡死与性能优化的实用技巧 【免费下载链接】secator secator - the pentesters swiss knife 项目地址: https://gitcode.com/gh_mirrors/se/secator Secator作为渗透测试人员的瑞士军刀,集成了多种安全测试…...

告别配置噩梦:Archon环境检查神器帮你秒定位问题

告别配置噩梦:Archon环境检查神器帮你秒定位问题 【免费下载链接】Archon Archon is an AI agent that is able to create other AI agents using an advanced agentic coding workflow and framework knowledge base to unlock a new frontier of automated agents…...

一文读懂:银行接口对接中的P10文件、证书与安全通信

在与银行进行API接口对接时,安全是头等大事。您一定会遇到“提供P10文件”这个要求。本文将从零开始,清晰解释P10是什么、为什么需要它、以及它如何在整个安全链条中发挥作用。一、P10文件是什么?P10文件,正式名称为证书签名请求&…...

使用SSHamble检测弱密钥:badkeys集成与实战案例

使用SSHamble检测弱密钥:badkeys集成与实战案例 【免费下载链接】sshamble SSHamble: Unexpected Exposures in SSH 项目地址: https://gitcode.com/gh_mirrors/ss/sshamble SSHamble是一款专注于SSH安全检测的工具,能够帮助用户发现SSH服务中存在…...

性能优化与最佳实践:避免常见陷阱

性能优化与最佳实践:避免常见陷阱 【免费下载链接】android-floating-action-button Floating Action Button for Android based on Material Design specification 项目地址: https://gitcode.com/gh_mirrors/an/android-floating-action-button 本文详细分…...

扩展与集成:Gradle依赖与ProGuard配置

扩展与集成:Gradle依赖与ProGuard配置 【免费下载链接】android-floating-action-button 项目地址: https://gitcode.com/gh_mirrors/se/sell-android-floating-action-button 本文详细介绍了Android FloatingActionButton库的Gradle依赖配置、版本管理策略…...

知识图谱生成工具knowledge_graph:如何将任意文本转化为可视化知识网络

知识图谱生成工具knowledge_graph:如何将任意文本转化为可视化知识网络 【免费下载链接】knowledge_graph Convert any text to a graph of knowledge. This can be used for Graph Augmented Generation or Knowledge Graph based QnA 项目地址: https://gitcode…...

Atmosphere核心组件解析:Broadcaster与Transport如何实现跨浏览器实时通信

Atmosphere核心组件解析:Broadcaster与Transport如何实现跨浏览器实时通信 【免费下载链接】atmosphere Event Driven WebSockets Framework with Cross-Browser Fallbacks 项目地址: https://gitcode.com/gh_mirrors/atm/atmosphere Atmosphere作为一款强大…...

X-CMD安全沙箱使用教程:在隔离环境中安全运行第三方工具

X-CMD安全沙箱使用教程:在隔离环境中安全运行第三方工具 【免费下载链接】x-cmd Opensource lightweight posix script for tools (500) management and classic command extensions 项目地址: https://gitcode.com/gh_mirrors/xc/x-cmd X-CMD(Gi…...

optimize-js实战教程:如何在Webpack和Browserify中集成使用

optimize-js实战教程:如何在Webpack和Browserify中集成使用 【免费下载链接】optimize-js Optimize a JS file for faster parsing (UNMAINTAINED) 项目地址: https://gitcode.com/gh_mirrors/op/optimize-js optimize-js是一个强大的JavaScript优化工具&…...

7大核心技术揭秘:数据科学如何彻底变革农业精准种植与产量预测

7大核心技术揭秘:数据科学如何彻底变革农业精准种植与产量预测 【免费下载链接】awesome-datascience awesome-datascience: 是一个包含各种数据科学资源、工具和实践的汇总列表。适合数据科学家、分析师和开发者查找和学习数据科学的知识和技术。 项目地址: http…...

复购率不理想如何用产品线组合提升长期价值

从“一次性交易”到“终身伙伴”:产品线组合的破局之道在竞争日益激烈的商业环境中,许多企业都面临一个共同的困境:客户首次购买后,便如石沉大海,复购率持续低迷。这不仅是收入的损失,更是品牌与用户关系脆…...

5分钟上手Atmosphere:快速搭建你的第一个WebSocket聊天应用

5分钟上手Atmosphere:快速搭建你的第一个WebSocket聊天应用 【免费下载链接】atmosphere Event Driven WebSockets Framework with Cross-Browser Fallbacks 项目地址: https://gitcode.com/gh_mirrors/atm/atmosphere Atmosphere是一款强大的Event Driven W…...

pinyin高级功能:分词模式与姓名模式的实战应用

pinyin高级功能:分词模式与姓名模式的实战应用 【免费下载链接】pinyin :cn: 汉字拼音 ➜ hn z pīn yīn 项目地址: https://gitcode.com/gh_mirrors/pi/pinyin pinyin是一款功能强大的汉字拼音转换工具,能够将中文字符精准转换为拼音&#xff0…...