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

Maven引入第三方JAR包实战指南

要将第三方提供的 JAR 包引入本地 Maven 仓库,可通过以下步骤实现(以 Oracle JDBC 驱动为例):


🔧 方法 1:使用 install:install-file 命令(推荐)

  1. 定位 JAR 文件
    将第三方 JAR 包(如 ojdbc11.jar)放置到本地目录(例如 D:\libs)。

  2. 执行 Maven 安装命令
    在命令行中进入 JAR 所在目录,执行以下命令(参数需根据实际修改):

    mvn install:install-file -Dfile=ojdbc11.jar                      # JAR 文件路径-DgroupId=com.oracle.database            # 自定义 groupId-DartifactId=ojdbc11                     # 自定义 artifactId-Dversion=21.13.0.0                      # 自定义版本号-Dpackaging=jar                          # 打包类型
    

    执行后效果
    JAR 会自动安装到本地仓库路径(如 ~/.m2/repository/com/oracle/database/ojdbc11/21.13.0.0/ojdbc11-21.13.0.0.jar)。

  3. 在项目中引用
    pom.xml 中添加依赖:

    <dependency><groupId>com.oracle.database</groupId><artifactId>ojdbc11</artifactId><version>21.13.0.0</version>
    </dependency>
    

注意事项

  1. 参数命名规范

    • groupIdartifactId 需符合反向域名规则(如 com.xxx)。
    • 版本号应与实际一致,避免冲突。
  2. 路径问题

    • -Dfile 需使用绝对路径相对路径正确指向 JAR 文件。
    • Windows 路径分隔符用 \/ 均可(如 D:/libs/ojdbc11.jar)。
  3. 环境验证
    执行前用 mvn -v 检查 Maven 环境是否配置正确。


🔄 替代方案对比

方法适用场景缺点
install-file 命令通用场景,需长期使用需手动执行命令
<systemPath> 引用临时测试,不放入仓库依赖需随项目分发,移植性差
IDE 直接添加库快速调试仅限当前项目,团队协作失效

💡 最佳实践:正式项目首选命令安装至本地仓库,确保构建一致性。


🌐 扩展:部署到私服(团队共享)

若需团队共享,可上传至 Nexus 私服

  1. 配置 settings.xml 添加私服认证:
    <server><id>nexus-releases</id><username>admin</username><password>admin123</password>
    </server>
    
  2. 执行部署命令:
    mvn deploy:deploy-file -Dfile=ojdbc11.jar -DgroupId=com.oracle.database -DartifactId=ojdbc11 -Dversion=21.13.0.0 -Dpackaging=jar -Durl=http://私服地址/repository/maven-releases/ -DrepositoryId=nexus-releases  # 与 settings.xml 的 <server> id 一致
    
http://www.lryc.cn/news/581634.html

相关文章:

  • Day06- (使用asyncio进行异步编程:事件循环和协程)
  • 群晖 DS3617xs DSM 6.1.7 解决 PhotoStation 安装失败问题 PHP7.0
  • 数据结构---B+树
  • Modbus 与 BACnet 协议互操作:工业协议转换方案(二)
  • 深入理解 classnames:React 动态类名管理的最佳实践
  • 【系统分析师】2023年真题:论文及解题思路
  • 【机器学习笔记Ⅰ】7 向量化
  • 【IOS】XCode创建firstapp并运行(成为IOS开发者)
  • Tuning Language Models by Proxy
  • CentOS-6与CentOS-7的网络配置IP设置方式对比 笔记250706
  • 【Vibe Coding 实战】我如何用 AI 把一张草图变成了能跑的应用
  • 黑马点评系列问题之基础篇16jedis redis依赖引入后仍然还是报错
  • Docker 容器编排原理与使用详解
  • 国内Ubuntu访问不了github等外网
  • 牛客周赛Round 99(Go语言)
  • 【前端工程化】前端工作中的业务规范有哪些
  • 4.2 如何训练⼀个 LLM
  • Redis主从切换踩坑记:当Redisson遇上分布式锁的“死亡连接“
  • 鼓式制动器的设计+(说明书和CAD【6张】 - 副本➕降重
  • ClickHouse 全生命周期性能优化
  • Linux内核(一)
  • 【unity小技巧】在 Unity 中将 2D 精灵添加到 3D 游戏中,并实现阴影投射效果,实现类《八分旅人》《饥荒》等等的2.5D游戏效果
  • [leetcode] C++ 并查集模板
  • SQL 一键转 GORM 模型,支持字段注释、类型映射、tag 自定义!
  • D435i + ROS2
  • Kali制作Linux木马
  • C++ i386/AMD64平台汇编指令对齐长度获取实现
  • 基于ARM+FPGA的光栅尺精密位移加速度测试解决方案
  • React 英语单词消消乐一款专为英语学习设计的互动式记忆游戏
  • 第一次ctf比赛的赛后复现记录