如何将一个本地的jar包安装到 Maven 仓库中

我们需要执行以下步骤:

  1. 首先,打开命令提示符(CMD)或 PowerShell,执行以下命令:
mvn install:install-file ^
-Dfile="你的jar包路径" ^
-DgroupId="组织ID" ^
-DartifactId="项目ID" ^
-Dversion="版本号" ^
-Dpackaging=jar

例如,如果你的 jar 包在 D:\mylib.jar,你可以这样执行:

mvn install:install-file ^
-Dfile="D:\scylla.jar" ^
-DgroupId=com.iflytek ^
-DartifactId=scylla ^
-Dversion=1.0.0 ^
-Dpackaging=jar ^
-DgeneratePom=true ^
-DlocalRepositoryPath="D:\repository"
  1. 安装成功后,在你的项目 pom.xml 中添加依赖:
<dependency><groupId>com.example</groupId><artifactId>mylib</artifactId><version>1.0.0</version>
</dependency>

具体步骤:

  1. 确保已安装 Maven

    • 在命令行输入 mvn -version 确认 Maven 已安装
    • 如果没有安装,需要先下载安装 Maven
  2. 准备参数信息

    • groupId: 通常是公司或组织的反向域名(如:com.example)
    • artifactId: jar 包的名称(如:mylib)
    • version: 版本号(如:1.0.0)
    • file: jar 包的完整路径
  3. 执行安装命令

    mvn install:install-file ^
    -Dfile="jar包路径" ^
    -DgroupId="组织ID" ^
    -DartifactId="项目ID" ^
    -Dversion="版本号" ^
    -Dpackaging=jar
    
  4. 验证安装

    • 安装后,jar 包会被复制到 Maven 本地仓库
    • 默认位置:C:\Users\你的用户名\.m2\repository
    • 或者你指定的 Maven 仓库位置
  5. 在项目中使用

    • 在项目的 pom.xml 中添加依赖配置
    • 刷新 Maven 项目(在 IDE 中右键项目 -> Maven -> Reload Project)

如果你需要指定自定义的 Maven 仓库位置,可以添加 -DlocalRepositoryPath 参数:

mvn install:install-file ^
-Dfile="D:\scylla.jar" ^
-DgroupId=com.iflytek ^
-DartifactId=scylla ^
-Dversion=1.0.0 ^
-Dpackaging=jar ^
-DgeneratePom=true ^
-DlocalRepositoryPath="D:\repository"
  1. 修改 systemPath 的写法
<dependency><groupId>com.iflytek</groupId><artifactId>scylla</artifactId><version>1.0.0</version><scope>system</scope><!-- 使用更可靠的写法 --><systemPath>${basedir}/src/main/resources/jar/scylla.jar</systemPath>
</dependency>
  1. 或者使用绝对路径测试
<dependency><groupId>com.iflytek</groupId><artifactId>scylla</artifactId><version>1.0.0</version><scope>system</scope><systemPath>D:\code3\CorpKnowledgeBase\spark-knowledge\knowledge-web\src\main\resources\jar\scylla.jar</systemPath>
</dependency>
  1. 检查文件位置
# 创建目录(如果不存在)
mkdir -p src/main/resources/jar# 确保 jar 包在正确位置
copy scylla.jar src\main\resources\jar\
  1. 刷新 Maven
  • 右键点击项目
  • 选择 Maven -> Reload Project
  • 或者在命令行执行:
mvn clean install -U
  1. 验证 Maven 属性
    你可以添加一个插件来打印实际路径:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-antrun-plugin</artifactId><version>3.0.0</version><executions><execution><phase>validate</phase><goals><goal>run</goal></goals><configuration><tasks><echo>project.basedir: ${project.basedir}</echo><echo>System Path: ${project.basedir}/src/main/resources/jar/scylla.jar</echo></tasks></configuration></execution></executions></plugin></plugins>
</build>
  1. 完整的 pom.xml 示例
<project><!-- 其他配置 --><properties><lib.dir>${project.basedir}/src/main/resources/jar</lib.dir></properties><dependencies><dependency><groupId>com.iflytek</groupId><artifactId>scylla</artifactId><version>1.0.0</version><scope>system</scope><systemPath>${lib.dir}/scylla.jar</systemPath></dependency><!-- 其他依赖 --></dependencies>
</project>

maven内置属性:

${project.basedir}        <!-- 项目根目录,即包含pom.xml文件的目录 -->
${project.build.directory} <!-- 构建目录,默认为 target -->
${project.version}        <!-- 项目版本 -->
${project.groupId}        <!-- 项目的groupId -->
${project.artifactId}     <!-- 项目的artifactId -->

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

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

相关文章

AI赋能的企业音频智能中枢:重构会议价值提升决策效率的数字化转型实践

在当今快节奏的商业环境中&#xff0c;企业管理者每天都要处理海量信息&#xff0c;其中音频内容占据了重要位置。你是否经常遇到这样的困扰&#xff1a;重要会议结束后&#xff0c;录音文件静静躺在设备里&#xff0c;迟迟无法变成可用的会议纪要跨部门协作时&#xff0c;收到…

医学+AI!湖北中医药大学信息工程学院与和鲸科技签约101数智领航计划

为积极推动人工智能与中医药信息化深度融合&#xff0c;着力培育既精通中医药理论又掌握人工智能技术的复合型人才&#xff0c;6 月 27 日&#xff0c;湖北中医药大学信息工程学院与上海和今信息科技有限公司&#xff08;以下简称 “和鲸科技”&#xff09;召开校企合作座谈会&…

全面掌控 Claude Code:命令 + 参数 + 快捷键一文全整理(建议收藏)

近日&#xff0c;随着Cursor套餐定价的风波&#xff0c;Claude Code 无疑成为了最近颇受欢迎的代码助手&#xff0c;不仅支持多种编程语言&#xff0c;还比Cursor更能理解复杂的上下文逻辑&#xff0c;极受广大开发者的青睐。 不过&#xff0c;与其他AI编程助手不同的是&#x…

深度学习-正则化

摘要 本文系统阐述了深度学习中的正则化技术体系&#xff0c;围绕防止过拟合这一核心目标展开。首先通过偏差-方差框架解析过拟合/欠拟合本质&#xff0c;并使用对比表明确区分特征&#xff1b;其次深入分析了L1/L2正则化的数学原理&#xff08;2mλ​∥w∥2与mλ​∥w∥1​&a…

STM32之风扇模块(开关控制+PWM调速)

目录 一、系统概述 二、5V直流风扇模块简介 2.1 基本概述 2.2 关键特性 2.3 接口定义 2.4 典型驱动电路 2.4.1 继电器驱动方案&#xff08;开关控制&#xff09; 2.4.2 三极管驱动方案&#xff08;调速控制&#xff09; 2.5 常见问题解决 三、继电器模块控制风…

AGX Xavier 搭建360环视教程【二、环境配置】

AGX Xavier 场景下的 【OpenCV FFmpeg CUDA GStreamer】 重装 & 编译的2025年稳定方案✅ 1️⃣ 先卸载老版本AGX 自带很多预装包&#xff0c;原则&#xff1a;卸载干净&#xff0c;避免旧库和新编译冲突。&#x1f539; 卸载 OpenCVdpkg -l | grep opencv sudo apt-get …

Cesium实战:交互式多边形绘制与编辑功能完全指南(最终修复版)

&#x1f4cb; 文章目录 引言功能概述环境准备核心实现步骤 地图初始化多边形绘制顶点编辑功能颜色与透明度自定义面积计算与显示 常见问题解决方案 多边形颜色显示异常面积标签不可见控制台alpha类型错误地图交互无法恢复 完整代码总结与扩展 引言 Cesium作为一款强大的3D地…

SQL判断先判断条件1是否符合,条件1不符合再判断条件2

伪代码假设存在条件1和条件2SELECT * FROM table1 WHERE 条件1 AND 条件2方法1&#xff1a;先判断条件1是否符合,条件1不符合再判断条件2是否满足&#xff1a;SELECT * FROM table1 WHERE (条件1) OR (NOT 条件1 AND 条件2);方法 2: 使用 IF 或数据库特有函数&#xff08;…

游戏的程序员会不会偷偷改自己账号的数据?

看到这个问题&#xff0c;我忍不住笑了。 作为一个在程序员这条路上摸爬滚打了快10年的老司机&#xff0c;虽然我主要专精嵌入式开发&#xff0c;但我也接触过不少游戏开发的朋友&#xff0c;对游戏行业的内部运作有一定了解。这个问题可以说是每个游戏玩家都曾经想过的&#x…

uniapp小程序tabbar跳转拦截与弹窗控制

一、第一步1、App.vue中定义globalData用于全局存储状态globalData:{needShowReleaseConfirm: false, // 标记是否需要显示发布页面确认弹窗allowReleaseJump: false ,// 标记是否允许跳转到发布页面},2、在App.vue中的onLaunch写入监听事件onLaunch: function() {// 添加switc…

华为网路设备学习-26(BGP协议 一)

一、AS&#xff08;自治系统&#xff09;AS&#xff08;自治系统&#xff09;的大小通常指其分配的唯一编号&#xff0c;范围分为两种&#xff1a;‌2字节AS号‌&#xff1a;取值范围1至65535&#xff08;其中64512-65535为私有AS号&#xff09; ‌‌4字节AS号‌&#xff1a;取…

大模型开发框架LangChain之函数调用

1.前言 之前一直使用 dify开发 agent&#xff0c;虽然功能很全面、效果也稳定&#xff0c;但是也存在流程固化、不灵活&#xff0c;以及 dify本身太重&#xff08;内部包含10个容器&#xff09;等问题。 故最近研究了大名顶顶的 langchain&#xff0c;先从函数调用开始&#xf…

pycharm中自动补全方法返回变量

使用IDEA开发java中&#xff0c;可以使用altenter 快捷键快速补全方法放回的变量使用pycharm也想实现此效果&#xff0c;如下图操作方法&#xff1a;pycharm中默认的补全方法返回变量的快捷键是&#xff1a;CtrlAltv 可以直接使用默认快捷键&#xff0c;也可以在settings->k…

Set 二分 -> 剑指算法竞赛

C【STL】集合set 标准库提供 set 关联容器分为&#xff1a; 按关键字有序保存元素&#xff1a;set&#xff08;关键字即值&#xff0c;即只保存关键字的容器&#xff09;、multiset&#xff08;关键字可重复出现的 set&#xff09;&#xff1b; 无序集合&#xff1a;unordered…

php的原生类

前言&#xff1a;累麻了&#xff01; 反射类 反射类 ReflectionClass&#xff1a;ReflectionClass 类报告了一个类的有关信息。正如其名用于映射反射一个类的类&#xff01; new ReflectionClass(MyClass) 会创建一个 ReflectionClass 实例&#xff0c;代表 MyClass 这个类。 …

PC网站和uniapp安卓APP、H5接入支付宝支付

首先我们需要完成支付宝账号注册&#xff0c;支持的账号类型&#xff1a;支付宝企业账号、支付宝个人账号、个体工商户。 到支付宝商家平台 产品中心开通APP支付、手机网站支付、电脑网站支付的产品权限。 一、电脑PC网站接入 电脑PC网站支付是指商户在电脑网页展示商品或服务&…

MCU芯片内部的ECC安全机制

MCU&#xff08;微控制器单元&#xff09;芯片内部的 ECC&#xff08;错误检测与纠正&#xff09;安全机制 是一种至关重要的硬件级可靠性技术&#xff0c;主要用于保护关键存储单元&#xff08;如 SRAM、Flash、Cache&#xff09;中的数据完整性&#xff0c;防止因外部干扰或硬…

【自动驾驶】经典LSS算法解析——深度估计

LSS-Lift.Splat,Shoot 论文题目&#xff1a;Lift, Splat, Shoot: Encoding Images From Arbitrary Camera Rigs by Implicitly Unprojecting to 3D 代码&#xff1a;https://github.com/nv-tlabs/lift-splat-shoot 概括&#xff1a;先做深度估计和特征融合&#xff0c;然后投…

《【第八篇-图片总结篇】Python图片处理自动化:终极工厂!从裁剪压缩到智能加水印,打造你的视觉内容生产流水线!》

在数字时代&#xff0c;图片无处不在。然而&#xff0c;高质量的图片背后&#xff0c;往往隐藏着繁琐的后期处理&#xff1a;图片文件太大导致加载慢&#xff1b;尺寸不符需要裁剪&#xff1b;版权保护要加水印&#xff1b; 为了兼容性还得批量转换格式……这些重复、机械的工…

frame 与新窗口切换操作【selenium 】

&#x1f9ed; 一、切换到 iframe 内部进行操作在浏览器自动化测试中&#xff0c;iframe 是一个特别的存在。它相当于在当前页面中嵌入了另一个独立的 HTML 页面。当我们试图直接访问 iframe 中的元素时&#xff0c;往往会发现定位不到&#xff0c;比如&#xff1a;elements w…