在Maven中新增自定的jar包

引言: 在软件项目中,Maven提供了一体化的类库管理系统,非常实用。但是,如果新增的类库jar在网络上无法获取到,如何在本地按照Maven的规则添加进来呢?本文将通过一个小例子展示新增过程。

背景介绍:

一个Maven管理的Java项目,提供一个系统级别的POM.xml,其中定义了整个项目使用的类库。

需求:

需要添加一个自定义的类库到当前项目中。假定当前的类库文件名为:abc.jar.、

如何将类库添加进来?

1.  找到当前Maven的Repository类库位置

一般默认情况下,在window系统下是当前用户目录: C:\Users\ZhangSan.  其中ZhangSan就是系统中当前的用户名. 在Linux系统下是/home/${USER_NAME}.

在此目录下,有一个隐藏的目录.m2/repository专门用来存放Maven系统中管理的各种类库文件。

2.  假定当前abc.jar的版本为1.0

3.  在新增POM.xml中新增的Dependency片段为:

 <dependency>
      <groupId>MyLocalJar</groupId>
      <artifactId>abc</artifactId>
      <version>1.0</version>
    </dependency>  

4.  在.m2/repository下需要新建的目录为:

MyLocalJar/abc/1.0/abc-1.0.jar

如果groupId为 MyLocalJar.myjar.util,则会被分解为3层的目录结构:MyLocalJar/myjar/util/1.0.

注意:  这里的abc.jar已经被新增了版本号,重名为abc-1.0.jar.

然后刷新系统就可以,正常使用了。

总结:

Maven其实遵循一个简单的原则,就是基于文件夹的层次来隔离各自的路径,groupId,arrtifactId,version都转换为了文件系统中的目录结构。对于Maven系统中的jar包本身也需要添加版本信息,例如这里的abc-1.0.

基于多版本的情况下,则会根据不同的版本,生成不同的目录,这个也是Maven在管理多版本的类包下的做法。

在Maven中新增自定的jar包,布布扣,bubuko.com

时间: 2024-12-09 22:21:52

在Maven中新增自定的jar包的相关文章

在 maven 中使用 snapshots 版本的 jar 包

1. 首先需要在 pom.xml 中配置如下的 snapshots 仓库 <repositories> <repository> <id>oss-snapshots</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <releases> <enabled>false</enabled> </relea

Eclipse下新建Maven项目、自动打依赖jar包

当我们无法从本地仓库找到需要的构件的时候,就会从远程仓库下载构件至本地仓库.一般地,对于每个人来说,书房只有一个,但外面的书店有很多,类似第,对于Maven来说,每个用户只有一个本地仓库,但可以配置访问很多远程仓库. Eclipse *版本 Eclipse *下载 强烈推荐书籍:Maven实战   许晓斌著.目前是第一版 注意:最新版本的Eclipse代号Mars,已经直接集成了Maven,所以无需安装m2Eclipse插件. Eclipse下新建Maven项目 1.下载Maven安装包 进入M

Maven仓库理解、如何引入本地包、Maven多种方式打可执行jar包

转载博客:http://quicker.iteye.com/blog/2319947 有关MAVEN仓库的理解参见:http://blog.csdn.net/wanghantong/article/details/36427433 MAVEN依赖关系中Scope的作用 Java代码   Dependency Scope 在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署.目前依赖项的作用域<scope>可以使用5个值: 在定义项目的依

maven工程打包成runnable的jar包,拷贝资源和依赖jar包

eclipse下新建maven工程,生成runnable的jar包.之前一直是手动拷贝依赖的jar包和资源文件,烦得要死.上网可劲查了一下.解决方案如下. 在pom的配置文件中做如下配置: <build> <finalName>...</finalName> <sourceDirectory>src/main/java</sourceDirectory> <resources> <!-- 控制资源文件的拷贝 --> <

maven命令学习-发布上传jar包-deploy

Maven学习六之利用mvn deploy命令上传包 转http://blog.csdn.net/woshixuye/article/details/8133050 mvn:deploy在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享. 以将ojdbc14传到nexus中的thirdparty为例 一 配置settings.xml 因为nexus是需要登陆操作,当然可以通过配置免登陆,这是后话. 在settings.xml的<server

maven 如何给web项目添加jar包依赖

maven 如何给web项目添加jar包依赖 CreateTime--2018年4月19日19:06:21 Author:Marydon 开发工具:eclipse 1.打开pom.xml文件-->切换到pom.xml视图--> 2.在build标签上,创建dependencies标签,jar包的引入都放到该标签内: 3.查看项目都引用了哪些jar包:src/main/webapp/WEB-INF/lib,然后将下面的jar包一个一个的从maven资源库中http://mvnrepository

java项目中可能会使用到的jar包解释

一.Struts2 用的版本是struts2.3.1.1 一个简单的Struts项目所需的jar包有如下8个 1. struts2-core-2.3.1.1.jar: Struts2的核心类库. 2. xwork-core-2.3.1.1.jar: XWork核心类,XWork是一个标准的command模式实现,并且完全从web层剥离出来.WebWork被构建在Xwork上,而Struts2由Struts1和WebWork两个经典的MVC框架发展而来. 3. ognl-3.0.3.jar: 支持

Java web开发中主要用到的jar包

1.Java开发中主要用到的jar包介绍:(1)java JDK基础开发包:java包和javax包.书写方式:import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; 1.java.util包:集合类list/set/map等接口和实现类.calendar,date日期操作类.properties读取配置文件类.random随机数类.Timer计时器类.

Servlet3.0中WEB-INF\lib下的jar包中的资源可以直接通过浏览器访问

看公司中的一个项目,访问了一个路径: http://127.0.0.1:8080/XXX/v2/jquery-1.8.1.min.js 但是看项目中的web资源并没有这个js文件,甚至连v2这个目录都没得,就觉得奇怪 便看了下web.xml中是否有相应的Filter之类的进行拦截处理,发现也没有,就纳闷了 便想可能会在引用到的jar包里,便打开几个查找下,果然发现了,解惑 目录结构如下: xxx.jar ---com.abc ---META-INF ------MANIFEST.MF -----