网站首页 > 编程文章 正文
特约作者:赵峻伟 Wise2C
简述
现在大家进行Java程序开发新项目的时候都会使用maven来安装和管理依赖文件,而不是直接将各种各样的jar包拷贝到项目classpath 目录(web 项目通常是 WEB-INF/lib 目录)下来编译和运行项目了。
但是我们在日常使用maven 开发的时不时会遇到这样的情况,我们想要使用的一个jar 文件在公网各大 maven 仓库中找不到,亦或是我们的一个项目需要依赖一个之前公司内部研发的jar包,这个jar包之前都是通过手动拷贝放到classpath 目录下来运行项目的。难道我们为了这样的情况就不得不忍受把jar拷贝到classpath 目录下,让这个不必要的二进制文件在svn/git 仓库里面停留,浪费空间和流量,拖慢下载代码的速度?
不是的!你有更好的选择,你可以很方便的把任何jar包(通常是没用maven 构建的),上传到公司的私有maven 仓库。这样你就可以使用maven 的方式来引用这个依赖了。
实践
假定我们需要将C:/sqljdbc4.jar 上传到我们的仓库服务器(http://yourrepo.com/nexus)。
首先我们需要在本地配置maven的server节点,该配置用于从仓库下载或者上传包时用于进行用户身份验证。(下载是可能会用到,视仓库服务器设置而定。)
通常maven依赖可以上传到两种仓库:Snapshots、Releases,分别为快照版仓库,主要用于存放不稳定的开发包。后者用于存放稳定版本的包。
在 $MAVEN_HOME/conf/settings.xml 配置文件中添加如下内容:
然后打开cmd,将其定位到你要上传的jar包的文件夹,类似地输入以下命令:
需要注意的是 –Dversion 、 -DrepositoryId 、-Durl 是一一对应的,如版本是snapshot ,仓库id 也应该是snapshot仓库的ID,仓库地址也需要填写snapshot仓库的url。 如果cmd 当前路径与jar包的路径在同一文件夹下,-Dfile 直接写文件名即可,如果不在同一个目录下,需要在-Dfile 后面写上文件的绝对路径。
如果当你运行上述命令时出现如下的错误:
通常是由于操作系统之间的差异,你可以尝试这样:
给所有的参数就加上双引号包起来,就可以解决问题了。
这样你的jar包就上传成功了!以后就直接在pom.xml 里面直接引用了。
福利
使用maven,gradle 的同学都知道,每每下载依赖的时候,面对几KB的速度,都有一种痛不欲生,浪费生命的感觉。这里分享两个国内访问速度超快的maven仓库: 阿里云maven仓库、Google maven 仓库,你肯定会问Google 不是被和谐了吗,用过你就知道了,Google 应该是在国内提供了对该网站的CDN缓存,速度超快的。添加mirror 到你的maven 全局配置文件,或者是在pom.xml 以repository的方式使用都可以!
猜你喜欢
- 2024-09-08 JDBC数据库连接怎么操作?(jdbc连接数据库实例)
- 2024-09-08 mysql 5 & 8 JDBC的差别(mysql和jdbc的关系)
- 2024-09-08 肝!Spring JDBC持久化层框架“全家桶”教程
- 2024-09-08 0467-Hadoop SQL客户端工具之Dbeaver安装及使用
- 2024-09-08 离线端Pycharm中Database工具数据库驱动程序的安装
- 2024-09-08 JDBC数据库开发(一)(jdbc如何实现数据库访问)
- 2024-09-08 0312-如何在Kerberos环境下使用Spark2通过JDBC访问Impala
- 2024-09-08 Kafka连接器深度解读之JDBC源连接器
- 2024-09-08 JDBC、SQL注入攻击原理以及解决方案
- 2024-09-08 大数据开发基础之JAVA基础-JDBC基础知识
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)