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

【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.rhkb.cn/news/79829.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cadence学习

Cadence学习 Cadence内容涵盖Cadence主要功能Cadence功能模块Allegro Design Entry CIS 和 OrCAD Capture CIS 的区别Cadence 公司简介Allegro Design Entry CISOrCAD Capture CIS OrCAD中part和database part区别OrCAD中不同页面的连接关系应该怎么处理&#xff08;1&#xff…

【Unity3D】消融特效

1 前言 选中物体消融特效中基于 Shader 实现了消融特效&#xff0c;本文将基于 Shader Graph 实现消融特效&#xff0c;两者原理一样&#xff0c;只是表达方式不同&#xff0c;另外&#xff0c;选中物体消融特效中通过 discard 丢弃片元&#xff0c;本文通过 alpha 测试丢弃片元…

【华秋推荐】物联网入门学习模块 ESP8266

随着全球信息技术的不断进步和普及&#xff0c;物联网成为当今备受关注的技术热点之一。通过物理和数字设备之间的连接来实现自动化和互联互通的网络。无线传感器、云计算和大数据分析等技术&#xff0c;物联网使设备能够相互交流和共享信息&#xff0c;实现智能化的自动化操作…

RocketMQ第二课-核心编程模型以及生产环境最佳实践

一、回顾RocketMQ的消息模型 ​ 上一章节我们从试验整理出了RocketMQ的消息模型&#xff0c;这也是我们使用RocketMQ时最直接的指导。 二、深入理解RocketMQ的消息模型 1、RocketMQ客户端基本流程 <dependency><groupId>org.apache.rocketmq</groupId>&…

数据结构 | 搜索和排序——搜索

目录 一、顺序搜索 二、分析顺序搜索算法 三、二分搜索 四、分析二分搜索算法 五、散列 5.1 散列函数 5.2 处理冲突 5.3 实现映射抽象数据类型 搜索是指从元素集合中找到某个特定元素的算法过程。搜索过程通常返回True或False&#xff0c;分别表示元素是否存在。有时&a…

gradle项目Connection timed out,build时先下载gradle问题download gradle-x.x-bin.zip

IDEA 导入 Gradle 项目&#xff0c;编译的时候会默认下载 配置版本的Gradle.zip问题&#xff0c;一般会下载失败&#xff0c;提示Connection timed out&#xff0c;连接超时。 解决办法&#xff1a; 修改项目根目录下gradle目录下的gradle-wrapper.properties文件&#xff0c;…

Kafka3.0.0版本——生产者如何提高吞吐量

目录 一、生产者提高吞吐量参数设置二、产者提高吞吐量代码示例 一、生产者提高吞吐量参数设置 batch.size&#xff1a;设置批次大小&#xff0c;默认16klinger.ms&#xff1a;设置等待时间&#xff0c;修改为5-100msbuffer.memory&#xff1a;设置缓冲区大小&#xff0c; 默认…

JGJ80-2016建筑施工高处作业安全技术规范

为规范建筑施工高处作业及其管理&#xff0c;做到防护安全、技术先进、经济合理&#xff0c;制定本规范。 本规范适用于建筑工程施工高处作业中的临边、洞口攀登、悬空、操作平台、交叉作业及安全网搭设等项作业。 本规范亦适用于其他高处作业的各类洞、坑、沟、槽等部位的施…

高性能计算集群使用

一、PuTTY的下载与安装 PuTTY是一款开源的连接软件&#xff0c;是 SSH、Telnet、Rlogin 和 SUPDUP 网络协议的客户端程序。 下载网址&#xff1a;Download PuTTY - a free SSH and telnet client for Windows 安装好后连接自己的服务器 输入用户名和密码&#xff0c;回车登录…

一些不错的VSCode设置和插件

设置 同步设置 我们做的各项设置&#xff0c;不希望再到其他机器的时候还得再重新配置一次。VSCode中我们可以登陆微软账号或者GitHub账号&#xff0c;登陆后我们可以开启同步设置。开启设置同步&#xff0c;根据提示登陆即可。 允许侧边栏水平滑动 在目录层次较深或者文件…

Docker-Compose编排与部署

目录 Docker Compose Compose的优点 编排和部署 Compose原理 Compose应用案例 安装docker-ce 阿里云镜像加速器 安装docker-compose docker-compose用法 Yaml简介 验证LNMP环境 Docker Compose Docker Compose 的前身是 Fig&#xff0c;它是一个定义及运行多个 Dock…

langchain-ChatGLM源码阅读:参数设置

文章目录 上下文关联对话轮数向量匹配 top k控制生成质量的参数参数设置心得 上下文关联 上下文关联相关参数&#xff1a; 知识相关度阈值score_threshold内容条数k是否启用上下文关联chunk_conent上下文最大长度chunk_size 其主要作用是在所在文档中扩展与当前query相似度较高…

【Spring Boot】(二)Spring Boot 配置文件的探索之旅

文章目录 前言一、配置文件的作用二、配置文件的格式2.1 Spring Boot 配置文件格式2.2 properties 和 yml 的区别 三、properties 配置文件3.1 properties 基本语法3.2 配置文件的读取3.3 properties 优缺点分析 四、yml 配置文件说明4.1 yml 基本语法4.2 yml 使用案例4.3 yml …

Android Ble蓝牙App(三)特性和属性

Ble蓝牙App&#xff08;三&#xff09;特性使用 前言正文一、获取属性列表二、属性适配器三、获取特性名称四、特性适配器五、加载特性六、显示特性和属性七、源码 前言 在上一篇中我们完成了连接和发现服务两个动作&#xff0c;那么再发现服务之后要做什么呢&#xff1f;发现服…

在centos7上使用非编译方式安装ffmpeg

很多在centos7上安装ffmpeg的教程都需要使用编译方式的安装&#xff1b;编译时间较长而且需要配置; 后来搜索到可以通过加载rpm 源的方式实现快速便捷操作 第一种方式&#xff1a; 首先需要安装yum源&#xff1a; yum install epel-release yum install -y https://mirrors.…

GPU版PyTorch对应安装教程

一、正确安装符合自己电脑的对应GPU版本的PyTorch之前需要了解三个基本概念 算力、CUDA driver version、CUDA runtime version ①算力&#xff1a;需要先知道你的显卡&#xff0c;之后根据官网表格进行对应&#xff0c;得到算力 ②CUDA driver version&#xff1a;电脑上显卡…

python编写小程序有界面,python编写小程序的运行

大家好&#xff0c;小编为大家解答python编写小程序怎么看代码的的问题。很多人还不知道python编写小程序的运行&#xff0c;现在让我们一起来看看吧&#xff01; Python第一个简单的小游戏 temp input("请猜一猜姐姐的幸运数字是&#xff1a; ") guess int(temp) …

99%的人做效果图都会忽略的问题!为什么你的效果图没有亚洲面孔?

不知道各位设计师有没有发现一个问题&#xff0c;我们做了不少效果图&#xff0c;也积攒了很多素材&#xff0c;但是出现在我们效果图的人物几乎都是外国人&#xff01; 可能你会说是亚洲人的素材实在太少&#xff0c;但本质是对“人”不够重视&#xff0c;觉得随便“复制粘贴”…

数据结构 | 利用二叉堆实现优先级队列

目录 一、二叉堆的操作 二、二叉堆的实现 2.1 结构属性 2.2 堆的有序性 2.3 堆操作 队列有一个重要的变体&#xff0c;叫作优先级队列。和队列一样&#xff0c;优先级队列从头部移除元素&#xff0c;不过元素的逻辑顺序是由优先级决定的。优先级最高的元素在最前&#xff…

火爆全网,Python自动化测试Allure测试报告生成,最强总结...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 Allure测试报告框…