【Maven】常用命令、插件管理、私服nexus

news2024/11/28 14:34:44

【Maven】常用命令、插件管理、私服nexus

  • 常用命令
  • 插件管理
  • 私服nexus
    • Nexus3
    • 配置私服
    • 项目pom中的配置
    • 发布时区分正式版、快照版

常用命令

在这里插入图片描述

  Maven提供了一系列常用命令,用于构建、测试和管理项目。以下是一些常用的Maven命令示例:

  mvn clean: 清除项目中生成的输出目录(如 target 目录)。

  mvn compile: 编译项目源代码。

  mvn test: 运行项目的单元测试。

  mvn package: 打包项目,生成可发布的构建物(如 JAR、WAR 或其它格式)。

  mvn install: 将项目构建物安装到本地 Maven 仓库,以供其他项目使用。

  mvn deploy: 将项目构建物部署到远程 Maven 仓库,以供其他开发人员访问和使用。

  mvn clean install: 清除项目并重新构建并安装项目。

  mvn dependency:tree: 显示项目的依赖树,包括所有传递性依赖。

  mvn help:system: 显示 Maven 系统信息。

  mvn archetype:generate: 根据 Maven 构建模板生成项目骨架。

插件管理

  在Maven中,插件是一种扩展机制,用于提供额外的构建、测试、部署和其他项目管理功能。插件可以通过Maven的插件管理系统进行管理和配置。下面是插件管理Maven的一些常见操作:

  定义插件:在项目的pom.xml文件中,使用<build>元素来定义插件。在<plugins>元素中添加插件的配置,包括插件坐标、执行目标、配置参数等。

  集成插件:Maven有一些常用的内置插件,如maven-compiler-pluginmaven-surefire-plugin等。这些插件可以直接在项目的pom.xml文件中通过<plugins>元素配置,无需额外的步骤。

  自定义插件:除了使用内置插件,您还可以编写自己的插件。Maven 使用 Apache Maven 插件插件(Apache Maven Plugin Plugin)来创建和管理插件项目。可以使用Maven Archetype来生成插件项目的骨架。

  生命周期绑定:Maven插件可以与Maven生命周期进行绑定。通过为插件配置<executions>元素,可以将插件的执行目标绑定到特定的构建阶段,例如编译、测试、打包等。

  插件版本管理:在项目的<build>元素中的<pluginManagement>元素中指定插件版本,可以对插件的版本进行统一管理。这样可以确保所有模块使用相同版本的插件,提高构建的一致性和可维护性。

  运行插件:通过运行mvn plugin-name:goal命令来执行插件的目标。例如,mvn clean, mvn compile, mvn test, mvn package等都是运行插件的预定义目标。

  插件配置:使用<configuration>元素可以对插件进行详细的配置。可以在项目的pom.xml文件中根据插件的需求进行相应的配置,以满足特定的构建要求。

  Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的。每个插件都能实现多个功能,每个功能就是一个插件目标。
  Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务。
  例如:compile 就是插件 maven-compiler-plugin 的一个目标

  Maven实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。

私服nexus

Nexus3

  Nexus3 是一个仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。

  平常我们在获取 maven 仓库资源的时候,都是从 maven 的官方(或者国内的镜像)获取,但是这都不是最好的方案,假如在同一个环境内,一个团队的多个开发人员同样的依赖都要从远程获取一遍,从网络方面来说,这是非常耗时的。这时候就需要在局域网内部署一个 Nexus3 用来管理 Maven(apt、yum、gradle、pypi、docker 等等)仓库。

  有些公司都不提供外网给项目组人员,因此就不能使用 maven 访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建 Nexus3 私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了 Nexus3 私服的电脑访问 maven 的远程仓库。

在这里插入图片描述

配置私服

  发布jar到私服需要的配置

<servers>
  <!-- 发布版 -->
  <server>
    <id>releases</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
  <!-- 快照版 -->
  <server>
    <id>snapshots</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
</servers>

  下载私服仓库jar需要的配置

<mirrors>
  <mirror>
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>
    <name>nexus maven</name>
    <url>http://127.0.0.1:8081/repository/maven-public/</url>
  </mirror>
</mirrors>

项目pom中的配置

  准备一个 maven 项目,在 pom.xml 中添加一段配置:

<distributionManagement>
	<repository>
		<id>releases</id>
		<name>maven-releases</name>
		<url>http://127.0.0.1:8081/repository/maven-releases/</url>
		<uniqueVersion>true</uniqueVersion>
	</repository>
	<snapshotRepository>
		<id>snapshots</id>
		<name>maven-snapshots</name>
		<url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
		<uniqueVersion>true</uniqueVersion>
	</snapshotRepository>
</distributionManagement>

发布时区分正式版、快照版

  发布只要执行命令mvn deploy即可。

  这里配置了两个仓库,一个正式版、一个快照版,maven 是如何区分你要发布到哪一个仓库呢?

  如果你的版本带着 releases,也就是<version>0.0.1-releases</version>,就会发布到 maven-releases。

  如果你的版本带着 snapshots,也就是<version>0.0.1-snapshots</version>,就会发布到 maven-snapshots。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/843738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装zabbix5.0监控

官网安装手册&#xff1a; https://www.zabbix.com/cn/download 一、 安装zabbix a. 安装yum源 rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpmyum clean allb. 安装Zabbix server&#xff0c;web前端&#xff0c;agent y…

面试热题(翻转k个链表)

给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值&a…

《论文阅读13》Efficient Urban-scale Point Clouds Segmentationwith BEV Projection

一、论文 研究领域&#xff1a; 城市级3D语义分割论文&#xff1a;Efficient Urban-scale Point Clouds Segmentationwith BEV Projection论文链接 注&#xff1a; BEV&#xff1a; Birds Eye View BEV投影是指鸟瞰视角(Birds Eye View,简称BEV)的一种从上方观看对象或场景的…

【JavaEE】Spring Boot - 配置文件

【JavaEE】Spring Boot 开发要点总结&#xff08;2&#xff09; 文章目录 【JavaEE】Spring Boot 开发要点总结&#xff08;2&#xff09;1. 配置文件的两种格式2. .properties 文件2.1 基本语法2.2 注释2.3 配置项2.4 主动读取配置文件的键值2.5 数据库的连接时的需要的信息配…

面试热题(字符串相加)

给定两个字符串形式的非负整数 num1 和num2 &#xff0c;计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库&#xff08;比如 BigInteger&#xff09;&#xff0c; 也不能直接将输入的字符串转换为整数形式。 输入&#xff1a;num1 "11"…

Mermaid系列之FlowChart流程图

一.欢迎来到我的酒馆 介绍mermaid下&#xff0c;Flowchat流程图语法。 目录 一.欢迎来到我的酒馆二.什么是mermiad工具三.在vs code中使用mermaid四.基本语法 二.什么是mermiad工具 2.1 mermaid可以让你使用代码来创建图表和可视化效果。mermaid是一款基于javascript语言的图表…

排序进行曲-v4.0

文章目录 小程一言快速排序步骤详细解释具体步骤 举例总结 复杂度分析时间复杂度分析&#xff1a;空间复杂度分析&#xff1a;注意 应用场景总结 实际举例结果总结 代码实现结果解释 小程一言 这篇文章是在排序进行曲3.0之后的续讲&#xff0c; 这篇文章主要是对快速排序进行细…

二、框架篇

框架篇 Spring 1. 基础核心技术 第1章-Spring的模块与应用场景 第2章-Spring基于XML配置的容器 第3章-Spring基于注解配置的容器 第4章-Spring基于Java配置的容器 第5章-Spring三种配置方式的混合和迁移 第6章-Spring同类型多个Bean的注入 第7章-Spring的Bean生命周期…

Mybatis案例-商品的增删改查

文章目录 1. aim2.环境准备3.查询3.1 查所有3.2 查看详情3.3 条件查询3.3.1 Mybatics如何接收参数&#xff1f;3.3.2 多条件查询3.3.3 动态条件查询3.3.4 单条件查询 4.添加主键返回 5.修改5.1 修改全部字段5.2 修改动态字段 6.删除6.1 删除1个6.2 批量删除 JDBC完成&#xff1…

【0804作业】顺序执行2个线程 (完成逆置打印、拷贝文件) (实现类似cat打印到终端)

作业1&#xff1a; 要求定义一个全局变量 char buf[] "1234567"&#xff0c;创建两个线程&#xff0c;不考虑退出条件 要求定义一个全局变量 char buf[] "1234567"&#xff0c;创建两个线程&#xff0c;不考虑退出条件&#xff0c;另&#xff1a; A线程循…

前端食堂技术周刊第 93 期:7 月登陆 Web 平台的新功能、Node.js 工具箱、Nuxt3 开发技巧、MF 重构方案

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;橙橙冰萃美式 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 大家好&#xff0c;我是童欧巴。欢迎来到前端食堂技术周刊&#xff0c;我们先来…

第二天 什么是JWT ?

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 每天一个知识点 ✨特色专…

RocketMQ 主备自动切换模式部署

目录 主备自动切换模式部署 Controller 部署​ Controller 嵌入 NameServer 部署​ Controller 独立部署​ Broker 部署​ 兼容性​ 升级注意事项​ 主备自动切换模式部署 该文档主要介绍如何部署支持自动主从切换的 RocketMQ 集群&#xff0c;其架构如上图所示&#xff…

c++实现Qt信号和槽机制

文章目录 简介信号槽信号与槽的连接 特点观察者模式定义观察者模式结构图 实现简单的信号和槽 简介 信号槽机制与Windows下消息机制类似&#xff0c;消息机制是基于回调函数&#xff0c;Qt中用信号与槽来代替函数指针&#xff0c;使程序更安全简洁。  信号和槽机制是 Qt 的核心…

Scratch 之 大地图引擎怎么做?

引子 简单的介绍一下&#xff0c;一些游戏引擎是有一个隐形小地图存在的&#xff0c;这个隐形小地图通常用来侦测碰碰撞和移动。那么&#xff0c;一个大地图引擎的背景肯定是很大的(一般来说大小都超过200)&#xff0c;如果我们要做出一个枪战作品&#xff0c;那就迟早会发现一…

Spring源码解析(七):bean后置处理器AutowiredAnnotationBeanPostProcessor

Spring源码系列文章 Spring源码解析(一)&#xff1a;环境搭建 Spring源码解析(二)&#xff1a;bean容器的创建、默认后置处理器、扫描包路径bean Spring源码解析(三)&#xff1a;bean容器的刷新 Spring源码解析(四)&#xff1a;单例bean的创建流程 Spring源码解析(五)&…

IBM HR Analytics 员工流失 EDA 和可视化绩效分析

IBM HR Analytics 员工流失与绩效分析 背景导入库输出前五行数据清洗检查空值删除不必要的列 可视化商务旅行直方图离家的距离箱形图教育与数字公司的关系年龄和月收入散点图按教育领域和工作角色划分的工作满意度相关矩阵的交互式热图 背景 揭示导致员工流失的因素&#xff0…

陪诊小程序开发|陪诊系统定制|数字化医疗改善就医条件

健康问题这几年成为人们关注的焦点之一&#xff0c;然而看病却是一个非常麻烦的过程&#xff0c;特别是对于那些身处陌生城市或者不熟悉就医流程的人来说。幸运的是现在有了陪诊小程序下&#xff0c;为您提供便捷的助医服务&#xff0c;使得就医过程得更加简单和轻松。 陪诊系统…

国联易安网页防篡改保护系统“渠道招募”启动啦!

作为业内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数据安全的领军企业&#xff0c;国联易安网页防篡改保护系统基于“高效同步”、“安全传输”两项技术&#xff0c;具备了独特的“五重防护”新特性&#xff0c;支持网页的全自动发布、网页监控、报警和自…

webpack基础知识十:与webpack类似的工具还有哪些?区别?

一、模块化工具 模块化是一种处理复杂系统分解为更好的可管理模块的方式 可以用来分割&#xff0c;组织和打包应用。每个模块完成一个特定的子功能&#xff0c;所有的模块按某种方法组装起来&#xff0c;成为一个整体(bundle) 在前端领域中&#xff0c;并非只有webpack这一款…