Maven (mvn) 详解:从入门到精通

在这里插入图片描述

博主 默语带您 Go to New World.
个人主页—— 默语 的博客👦🏻 优秀内容
《java 面试题大全》
《java 专栏》
《idea技术专区》
《spring boot 技术专区》
《MyBatis从入门到精通》
《23种设计模式》
《经典算法学习》
《spring 学习》
《MYSQL从入门到精通》数据库是开发者必会基础之一~
🍩惟余辈才疏学浅,临摹之作或有不妥之处,还请读者海涵指正。☕🍭
🪁 吾期望此文有资助于尔,即使粗浅难及深广,亦备添少许微薄之助。苟未尽善尽美,敬请批评指正,以资改进。!💻⌨


默语是谁?

大家好,我是 默语,别名默语博主,擅长的技术领域包括Java、运维和人工智能。我的技术背景扎实,涵盖了从后端开发到前端框架的各个方面,特别是在Java 性能优化、多线程编程、算法优化等领域有深厚造诣。

目前,我活跃在CSDN、掘金、阿里云和 51CTO等平台,全网拥有超过10万的粉丝,总阅读量超过1400 万。统一 IP 名称为 默语 或者 默语博主。我是 CSDN 博客专家、阿里云专家博主和掘金博客专家,曾获博客专家、优秀社区主理人等多项荣誉,并在 2023 年度博客之星评选中名列前 50。我还是 Java 高级工程师、自媒体博主,北京城市开发者社区的主理人,拥有丰富的项目开发经验和产品设计能力。希望通过我的分享,帮助大家更好地了解和使用各类技术产品,在不断的学习过程中,可以帮助到更多的人,结交更多的朋友.


我的博客内容涵盖广泛,主要分享技术教程、Bug解决方案、开发工具使用、前沿科技资讯、产品评测与使用体验。我特别关注云服务产品评测、AI 产品对比、开发板性能测试以及技术报告,同时也会提供产品优缺点分析、横向对比,并分享技术沙龙与行业大会的参会体验。我的目标是为读者提供有深度、有实用价值的技术洞察与分析。


Maven (mvn) 详解:从入门到精通

摘要
Maven(mvn)是一种强大的构建工具,广泛用于Java项目的管理和构建。本文从零开始,深入剖析Maven的基础知识、核心命令、典型用法,并通过丰富的代码示例让初学者快速掌握它。


引言

Maven 是一款基于 POM(Project Object Model)的构建工具,主要用于项目依赖管理、生命周期管理和自动化构建。无论是小型项目还是企业级应用,Maven 都提供了强大的功能,帮助开发者提高开发效率。

什么是 Maven?

  • 全称:Apache Maven

  • 作用:管理项目构建、依赖和文档。

  • 特点

    1. 简化构建流程。
    2. 提供统一的项目结构。
    3. 强大的插件支持。

正文

1. 安装和环境配置

安装步骤
  1. 下载 Maven

    • 前往 Maven 官网,下载对应操作系统的安装包。
  2. 解压并配置环境变量

    export MAVEN_HOME=/path/to/maven
    export PATH=$MAVEN_HOME/bin:$PATH
    
  3. 验证安装

    mvn -v
    

    输出如下表明安装成功:

    Apache Maven 3.x.x
    Java version: 1.x.x
    Default locale: en_US, platform encoding: UTF-8
    

2. Maven 核心概念

2.1 POM 文件
  • 位置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>
    </project>
    
2.2 Maven 仓库
  1. 本地仓库:默认存储在 ~/.m2/repository
  2. 中央仓库:Maven 默认的公共仓库。
  3. 远程仓库:可配置企业级私有仓库。
2.3 Maven 生命周期
  • 清理生命周期

    mvn clean
    

    删除项目的生成文件。

  • 默认生命周期: 包括编译、测试、打包等:

    mvn package
    
  • 站点生命周期: 用于生成项目文档:

    mvn site
    

3. 常用 Maven 命令详解

3.1 构建项目
  • 编译项目:

    mvn compile
    
  • 跳过测试构建:

    mvn package -DskipTests
    
3.2 管理依赖
  • 查看项目依赖树:

    mvn dependency:tree
    
  • 添加依赖: 在 pom.xml 中:

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.9</version>
        </dependency>
    </dependencies>
    
3.3 使用插件

Maven 的强大功能来自其插件体系。

  • 运行项目

    mvn exec:java -Dexec.mainClass="com.example.App"
    
  • 代码检查

    mvn checkstyle:check
    

4. 实战 Demo:一个完整的 Maven 项目

  1. 创建 Maven 项目

    mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
    
  2. 目录结构

    my-app/
    ├── pom.xml
    ├── src
        ├── main
        │   ├── java
        │   │   └── com
        │   │       └── example
        │   │           └── App.java
        └── test
            └── java
                └── com
                    └── example
                        └── AppTest.java
    
  3. 核心代码

  •   App.java
    
  package com.example;
     
     public class App {
         public static void main(String[] args) {
             System.out.println("Hello, Maven!");
         }
     }
  • AppTest.java
    
    package com.example;
    
    import org.junit.Test;
    import static org.junit.Assert.assertTrue;
    
    public class AppTest {
        @Test
        public void shouldAnswerWithTrue() {
            assertTrue(true);
        }
    }
    
  1. 构建和运行

    • 构建项目:

      mvn package
      
    • 运行项目:

      java -cp target/my-app-1.0-SNAPSHOT.jar com.example.App
      

总结

通过本文,我们从零了解了 Maven 的基础知识和核心功能。Maven 在项目构建、依赖管理、插件扩展等方面的优势,极大地提高了开发效率。如果你是初学者,只需从基础命令开始练习,就能逐渐掌握 Maven 的全部功能。


参考资料

  1. Maven 官方文档
  2. 《Maven 实战》——作者:Jason van Zyl

想了解更多 Java 构建工具的高级用法?加我的微信一起交流吧!👨‍💻
微信号:Solitudemind
长按复制,一起学习进步! 😊

在这里插入图片描述


🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

如对本文内容有任何疑问、建议或意见,请联系作者,作者将尽力回复并改进📓;(联系微信:Solitudemind )

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默语∿

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值