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

Maven基础之仓库、命令、插件机制

在这里插入图片描述

文章目录

    • Maven 仓库
      • 中央仓库和本地仓库
      • 中央仓库
      • 本地仓库
    • Maven 命令
      • generate 命令
      • compile 命令
      • clean 命令
      • test 命令
      • package 命令
      • install 命令
    • Maven 插件机制
      • 官方插件:Compile 插件
      • Tomcat 7 插件

Maven 仓库

中央仓库和本地仓库

[✎] 简单一点说
中央仓库是一个网址;本地仓库是一个本地的文件夹。

在使用 maven 过程中,maven 会去网络上的『中央仓库』下载你所需要的 java 库到你本地的某个文件夹下,这个存储 maven 下载下来的 jar 包的文件夹就是你的『本地仓库』。

[✔] 补充
本质上,其实是 maven 要求你的"本地仓库"中必须要有你所要用到的包,而因为你本地仓库中没有,所以,maven 会去网络上的"中央仓库"下载。

一旦在第一次下载过后,由于你的本地仓库中存在了这个 jar 包,那么后续,maven 就不再重复下载它了。

中央仓库

如果不指定的话,maven 默认是从 https://repo1.maven.org/maven2 下载(网速感人且不稳定)

在 maven 的全局配置文件 %homepath%/.m2/settings.xml 中,我们可以重新指定中央仓库的网址。

我们在Maven 基础之简介,基础配置中做的配置工作就是改动这个。

本地仓库

本地仓库指的是 “%homepath%/.m2/repository” 文件夹。

maven 从中央仓库(上面所配置的那个网址)中下载下来的 java 库的 jar 包,都会放在这里。

本地仓库的查找顺序:

  1. USER_HOME/.m2/settings.xml 中所配置的目录
  2. M2_HOME/conf/settings.xml 中所配置的目录
  3. USER_HOME/.m2/repository 目录

Maven 命令

语法:

mvn <指令>

generate 命令

generate 命令用于创建项目。在你所期望建立项目的文件路径下,执行如下命令

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

这条命令会在当前目录下,新建一个名字与 artifactId 值相同的 Maven 项目。

compile 命令

执行 mvn compile 命令,完成编译操作

执行完毕后,会生成 target 目录,该目录中存放了编译后的字节码文件(.class 文件)

clean 命令

执行 mvn clean 命令,完成清理操作。

执行完毕后,会将 target 目录删除。

test 命令

执行 mvn test 命令,完成单元测试操作。

执行完毕后,会在 target 目录中生成三个文件夹:surefire 、surefire-reports(测试报告)、test-classes(测试的字节码文件)

package 命令

执行 mvn package 命令,完成打包操作。

package 命令会涵盖 compile 命令和 test 命令,即,执行 package 命令会触发 compile 命令和 test 命令的执行。

执行完毕后,会在 target 目录中生成一个文件,该文件可能是 jar 、war ,这取决于 pom.xml 配置文件中的 <packaging>

install 命令

将包安装至本地仓库,以便让其它项目依赖。

install 命令会涵盖 package 命令,即,执行 install 命令会触发 package 命令的执行。

Maven 插件机制

Maven 本质上是一个插件的框架、平台。任何一个 Maven 动作(即,命令)都是由具体的插件去完成的。

例如:

  • mvn compile 这个命令,就是由 maven-compiler-plugin 插件提供的。

  • mvn test 这个命令,就是由 maven-surefire-plugin 插件提供的。

  • mvn package 这个命令,就是由 maven-jar-plugin / maven-war-plugin 插件提供的。

Maven 除了提供了大量的官方插件外,还可以「安装」第三方插件。

插件配置的依赖声明整体结构(其它无关元素略。另外,build 习惯性在 dependencies 的后面)

project 
├── dependencies
└── build└── plugins├── plugin├── plugin├── ...└── plugin

官方插件:Compile 插件

通常,官方插件都是默认激活使用的。一般,我们不会通过自定义的配置去覆盖默认配置。

主要包含如下元素:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin>...</plugin><plugin>...</plugin><plugin>...</plugin><plugins>
</build>

Tomcat 7 插件

tomcat 7 插件是一个 tomcat 7 容器的裁剪、精简版,并且它还提供了一个 tomcat7:run 命令来用这个裁剪版的运行当前项目。

我们在开发过程中 tomcat7-maven-plugin 就能运行当前项目,查看运行结果。

详情

<build><plugins><plugin><!-- 配置插件 --><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><path>/demo</path><port>8080</port><uriEncoding>UTF-8</uriEncoding></configuration></plugin><plugin>...</plugin><plugin>...</plugin><plugin>...</plugin></plugins>
</build>

[⚠] 警告
有 tomcat 8 版本的 maven 插件(即,一个 tomcat 8 容器的裁剪、精简版),但是中央仓库中并没有。

http://www.lryc.cn/news/124262.html

相关文章:

  • 【ArcGIS】经纬度数据转化成平面坐标数据
  • 使用自己的数据利用pytorch搭建全连接神经网络进行回归预测
  • 103.216.154.X服务器出现漏洞了有什么办法?
  • 数据结构:堆的实现(C实现)
  • 数据分析两件套ClickHouse+Metabase(一)
  • urllib爬虫模块
  • TCP消息传输可靠性保证
  • Visual Studio 与QT ui文件
  • 竞赛项目 深度学习验证码识别 - 机器视觉 python opencv
  • ORA-00845: MEMORY_TARGET not supported on this system
  • wps设置一键标题字体和大小
  • TIA博途WINCC_如何在IO域中保证输入数值只能为正数?
  • 《Linux从练气到飞升》No.13 Linux进程状态
  • 安卓快速开发
  • SpringCloud微服务之间如何进行用户信息传递(涉及:Gateway、OpenFeign组件)
  • RabbitMQ之TTL+死信队列实现延迟队列
  • GrapeCity Documents for PDF (GcPdf) 6.2 Crack
  • 【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据)
  • 问AI一个严肃的问题
  • Flowable流程的挂起与激活详解
  • 探索前端动画之CSS魔法
  • Oracle数据库登录遇到密码临期问题
  • LVGL学习笔记 30 - List(列表)
  • Ubuntu下mysql安装及远程连接支持配置
  • 自然语言处理: 第八章chatGPT的搭建
  • 阿里云国际版云服务器防火墙怎么设置呢?
  • 安装elasticsearch
  • 【Sklearn】基于朴素贝叶斯算法的数据分类预测(Excel可直接替换数据)
  • 学习Vue:创建和使用组件
  • 【MongoDB基础】