maven(1)

本文概述了Maven作为项目管理工具的核心功能,包括项目构建自动化、依赖管理及标准化开发结构,介绍了仓库类型和坐标系统,以及常用的构建流程和配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

maven是什么?

maven的本质是一个项目管理工具,将项目开发和管理过程抽象看成一个对象。

maven的作用?

maven的作用我们可以分成三类:

1 项目构建:提供标准的,跨平台的自动化构建项目的方式

2 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题。

3 统一开发结构:提供标准的,统一的项目开发结构

maven的仓库:用于存储资源,主要是各种jar包

仓库有三种:本地仓库,私服,中央仓库,其中私服和中央仓库都属于远程仓库。

中央仓库:maven团队自身维护的仓库,属于开源的。

私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库中获取资源。

本地仓库:开发者自己电脑上存储资源的仓库,也可以从远程仓库中获取资源。

maven中存储了各种各样的资源(jar包),那么我们需要确定资源位置,需要用到坐标。

manen的坐标主要组成如下:

groupId:定义当前资源隶属组织名称(通常是域名反写,如:org.mybatis;)

artifactId:定义当前资源的名称(通常是项目或模块名称)

version:定义当前资源的版本号

packaging:定义资源的打包方式,取值一般有三种

1 jar:资源打成jar包,默认也是jar

2 war:资源打成war包,

3 pom:资源是一个父资源(表明使用maven的分模块管理),打包时只生成pom.xml不生成jar或其他包结构

工作中使用:pom用在父模块中,jar用在子模块,war用在准备在服务器上部署的模块

如果想要查询某一个资源的坐标,可以区maven的仓库中去查询(https://mvnrepository.com/repos/central

项目构建:

maven的构建命令主要以mvn开头,后面添加功能参数,可以一次执行多个命令,用空格分离

mvn compile:编译

mvn clean:清理

mvn test:测试

mvn package:打包

mvn install:安装到本地仓库

pom文件的常见配置

<?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">
<!--  指定pom的模型版本-->
  <modelVersion>4.0.0</modelVersion>
<!--  打包方式,web工程打包为war,java工程打包为jar-->
  <packaging>war</packaging>

  <name>mvnweb</name>
<!--  组织id-->
  <groupId>org.example</groupId>
<!--  项目id-->
  <artifactId>mvnweb</artifactId>
<!--  版本号-->
  <version>1.0-SNAPSHOT</version>

<!--  设置当前项目所依赖的所有jar-->
  <dependencies>
<!--    设置具体的依赖-->
    <dependency>
<!--      依赖所属的群组id-->
      <groupId>junit</groupId>
<!--      依赖所属的项目id-->
      <artifactId>junit</artifactId>
<!--      依赖版本号-->
      <version>4.12</version>
<!--      jar包的使用范围-->
      <scope>compile</scope>
<!--      可选依赖,对外隐藏当前所依赖的资源-->
      <optional>true</optional>
<!--      排除依赖,指主动断开依赖的资源,被排除的资源无需指定版本-->
      <exclusions>
        <exclusion>
          <groupId></groupId>
          <artifactId></artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

<!--  构建-->
  <build>
<!--    设置插件-->
    <plugins>
<!--      插件的具体配置-->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <port>10010</port>
          <path>/</path>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

scope标签的取值主要有四种:

compile:任何范围都可以使用,同时也是默认值

test:只能用于测试

provided:主代码与测试代码可以使用(理解:provided是提供支持,只给代码提供支持。线上运行不能用,只有在开发测试阶段能够使用)

servlet-api就是不用打包进去,因为代码打包后是运行在tomcat中,而tomcat中自带servlet-api这个包

runtime:打包可用(理解:runtime:运行时,这个运行是指程序上线运行,与provided正好相反)

maven常用的一套流程:

compile-->test-compile-->test-->package-->install

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值