首页 > 其他分享 >什么是Maven?使用Maven有什么好处?Maven如何使用?一篇文章帮你解决!

什么是Maven?使用Maven有什么好处?Maven如何使用?一篇文章帮你解决!

时间:2024-11-10 10:45:51浏览次数:3  
标签:maven 插件 一篇 项目 Maven 构建 使用 mvn

什么是Maven?

        Maven 是一个强大的项目管理和构建自动化工具,主要用于Java项目的管理和构建。它通过约定大于配置的原则,简化了项目的构建过程,并提供了丰富的插件系统来扩展其功能。

为什么使用Maven?

  1. 依赖管理:自动下载和管理项目所需的库和插件。
  2. 构建自动化:定义和执行标准的构建生命周期,包括编译、测试、打包、部署等。
  3. 项目结构标准化:定义了一套标准的项目结构,便于团队协作和项目维护。
  4. 插件系统:提供了丰富的插件支持各种构建任务,开发者也可以编写自定义插件。
  5. 多模块项目管理:支持多模块项目的构建和管理,便于模块化开发和代码复用
     

总而言之:使用maven可以帮助我们处理第三方依赖,及传递依赖。 规范目录结构,(可以通过配置使用个性化的目录结构,但不建议这么做) 方便的打包,部署功能 方面的多模块管理能力 丰富的扩展插件,扩展功能,如代码检查插件,单元测试插件等。  

Maven的核心概念

  1. Project(项目):一个Maven项目,包含了一个pom.xml文件和其他资源文件。
  2. POM(Project Object Model):项目的核心配置文件,位于项目的根目录,名为pom.xml
  3. Dependency(依赖):项目所需的库或插件。
  4. Repository(仓库):存储依赖和插件的中央仓库,包括本地仓库和远程仓库。
  5. Build Lifecycle(构建生命周期):一系列预定义的构建阶段,如clean、compile、test、package、install、deploy等。

Maven项目结构 

my-app/
├── pom.xml
└── src/
    ├── main/
    │   ├── java/
    │   │   └── com/
    │   │       └── mycompany/
    │   │           └── app/
    │   │               └── App.java
    │   └── resources/
    └── test/
        ├── java/
        │   └── com/
        │       └── mycompany/
        │           └── app/
        │               └── AppTest.java
        └── resources/

如何使用Maven? 

1. 安装Maven

首先,你需要在系统上安装Maven。可以从Maven官网下载并安装。

2. 创建Maven项目

你可以使用Maven的archetype插件来创建一个新项目:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

这将生成一个基本的Maven项目结构。 

3. pom.xml文件

pom.xml是Maven项目的核心配置文件,定义了项目的元数据、依赖、插件等信息。

<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.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

4. 执行Maven命令 

在项目根目录下,可以使用以下命令来执行Maven的构建和测试:

mvn clean install

这个命令会清理项目、编译代码、运行测试,并生成可执行的JAR文件。

Maven常用命令 

  1. mvn clean:清理项目,删除target目录。
  2. mvn compile:编译项目代码。
  3. mvn test:运行单元测试。
  4. mvn package:打包项目,生成JAR/WAR文件。
  5. mvn install:将打包后的文件安装到本地仓库,供其他项目使用。
  6. mvn deploy:部署打包后的文件到远程仓库。

但是如果是使用idear就很轻松了,直接点击就可以了,当你安装好maven的安装包,idear会出现下面的界面

 Maven插件

Maven提供了丰富的插件来扩展其功能,例如:

  1. maven-compiler-plugin:编译Java代码。
  2. maven-surefire-plugin:运行单元测试。
  3. maven-jar-plugin:打包JAR文件。
  4. maven-war-plugin:打包WAR文件。

你可以通过在pom.xml中配置插件来使用它们

总结

Maven通过依赖管理、构建自动化、项目结构标准化等功能,极大地简化了Java项目的管理和构建过程。通过学习Maven的基本概念和常用命令,你可以轻松地创建和管理Java项目,并利用其丰富的插件系统来扩展功能。

标签:maven,插件,一篇,项目,Maven,构建,使用,mvn
From: https://blog.csdn.net/qq_65597930/article/details/143651263

相关文章

  • 使用configparser 读 or 写 配置文件
    config.ini文件[config]username=2024222222password=123456time=202320241num1=1id1=018819num2=1id_1=018818读取配置文件defread_ini():file='config.ini'con=configparser.ConfigParser()con.read(file,encoding='u......
  • 在Windows中,使用批处理(.bat)文件可以通过调用命令来实现自动拨号连接。以下是通过批处
    在Windows中,使用批处理(.bat)文件可以通过调用命令来实现自动拨号连接。以下是通过批处理文件实现PPPoE(拨号)连接的基本步骤:步骤1:配置拨号连接(PPPoE)在Windows中,你首先需要设置一个PPPoE拨号连接。以下是设置步骤:打开网络连接设置:点击开始菜单,输入“网络和共享中心”并打开......
  • C++之vector 容器的使用
    在C++中,std::vector是一个非常灵活且常用的容器,它提供了动态数组的功能。以下是一些基本的使用方式:包含头文件要使用std::vector,首先需要包含头文件<vector>。#include<vector>创建vector//创建一个空的vectorstd::vector<int>vec;//创建一个vector并初始化......
  • 使用特征构建进行连续变量的特征提取
    特征构建(FeatureEngineering)是机器学习过程中至关重要的一步,它直接影响模型的性能和准确性。通过对原始数据进行转换、处理和扩展,可以为模型提供更加丰富的信息,提升预测效果。特征构建的核心思想是利用现有的数据来生成新的特征,以便模型可以更好地捕捉潜在的规律和趋势。无......
  • 【C++】详细介绍:priority_queue的使用、适配器、deque介绍、仿函数
    目录一、介绍二、使用三、函数模版和类模板的区别四、适配器1、适配器适配栈扩展:2、deque(双端队列)缺省模版五、仿函数一、介绍(1)、priority_queue称为优先级队列,是一种容器适配器,不是队列也不是容器。(2)、该结构的底层是堆结构,默认是大堆,用模版参数来区分是大堆......
  • 50个广泛使用的SQL关键字
    1.SELECT:用于从一个或多个数据表中检索数据。2.FROM:指定`SELECT`查询中数据来源的表。3.WHERE:用于过滤查询结果,指定选择条件。4.INSERTINTO:用于向表中插入新行。5.UPDATE:用于修改表中的数据。6.DELETE:用于从表中删除数据。7.CREATETABLE:用于创建新表。8.DROPT......
  • 深度学习Pytorch快速入门我是土堆,P14torchvision中的数据集使用
    这里先表明下为啥从P8直接跳到了P14,原因是这中间的讲的都是Transfroms的使用,作为小白我听完课之后总结下Transfrom的功能:1.输入2.输出3.改变图片的大小。而且老师说了这个用的比较多,所以想先往下看,等到后面用到的时候,up还会再讲的。importtorchvisionfromtorch.utils.tenso......
  • c++中使用using namespace的命名空间污染问题
    如果 a.h 中使用了 usingnamespaceaa;,并且 b.cpp 包含了 a.h,那么在 b.cpp 中可以直接使用 aa 命名空间中的内容,因为 usingnamespaceaa; 会被一并包含进来。解释usingnamespace 会将指定命名空间中的所有符号引入当前作用域。当 b.cpp 包含 a.h 时,a.h 中......
  • Playwright使用Typescript实现在测试case文件中调用另一个文件中的方法
    前提:(1)安装了nodejs(2)创建了测试目录(3)使用Vscode安装了Playwright插件可以参考官方文档:https://playwright.dev/docs/getting-started-vscode 在vscode界面最左侧的按钮选择Explorer,创建一个与tests目录同级的目录methods,并在methods目录下创建文件method1.ts,目录结构如......
  • 使用 PyTorch 实现并测试 AlexNet 模型,并使用 TensorRT 进行推理加速
    本篇文章详细介绍了如何使用PyTorch实现经典卷积神经网络AlexNet,并利用Fashion-MNIST数据集进行训练与测试。在训练完成后,通过TensorRT进行推理加速,以提升模型的推理效率。本文全部代码链接:全部代码下载环境配置为了保证代码在GPU环境下顺利运行,我们将安装兼容......