转:https://blog.csdn.net/wabiaozia/article/details/52798194

准备工作:

假如我有一个自定义jar是:123456.jar,下载地址http://download.csdn.net/detail/wabiaozia/9870838

如果不想下载,可以按照https://jingyan.baidu.com/article/046a7b3ed8b23ef9c27fa9b9.html 操作即可得到jar。

jar包里的源码是:

  1.  
    public class RegexUtils {
  2.  
     
  3.  
    /**
  4.  
    * 验证Email
  5.  
    * @param email email地址,格式:zhangsan@zuidaima.com,zhangsan@xxx.com.cn,xxx代表邮件服务商
  6.  
    * @return 验证成功返回true,验证失败返回false
  7.  
    */
  8.  
    public static boolean checkEmail(String email) {
  9.  
    String regex = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";
  10.  
    return Pattern.matches(regex, email); }
  11.  
    }

使用建议:

建议使用第二种方式引入本地jar

引入自定义jar方式一:

1 首先找到你的maven的配置文件{你maven的路径}\conf\settings.xml,然后打开settings.xml,查看你存放本地jar路径的根目录。例如我的maven根目录是C:\Users\user\.m2\localRepository。我自己定义的jar只要按照一定的规则放在这个根目录下就行了,下文会具体介绍。

2 假如你自定义的jar包是123456.jar,你想在你项目的pom.xml中这样引入你的jar包

  1.  
    <dependency>
  2.  
    <groupId>123456</groupId>
  3.  
    <artifactId>123456</artifactId>
  4.  
    <version>1.0</version>
  5.  
    </dependency>

3 在你的根目录文件夹下建立如下文件夹

在根目录C:\Users\user\.m2\localRepository\  创建123456文件夹 ---->再创建123456文件夹----->再创建1.0文件夹

最后把123456.jar放到1.0文件夹下

转载请标明链接:http://blog.csdn.net/wabiaozia?viewmode=contents

如下图所示

4 把123456.jar改为123456-1.0.jar,并创建文件123456-1.0.pom。这里注意,创建的文件后缀是点pom而不是点xml(是" . pom"不是".xml")。

然后在123456-1.0.pom中写如下内容

  1.  
    <project>
  2.  
    <modelVersion>1.0.0</modelVersion>
  3.  
    <groupId>123456</groupId>
  4.  
    <artifactId>123456</artifactId>
  5.  
    <version>1.0</version>
  6.  
    </project>

5 在你的项目的pom.xml依赖中引入就行了

  1.  
    <dependency>
  2.  
    <groupId>123456</groupId>
  3.  
    <artifactId>123456</artifactId>
  4.  
    <version>1.0</version>
  5.  
    </dependency>

6 如果你的pom.xml报错

然后勾选 force update of snapshots/releases 选项即可。

7 项目代码中使用:

boolean b = RegexUtils.checkEmail(email);
 

8 关于groupId,artifactId怎么写再举一例

jar包的位置

pom.xml中引入

  1.  
    <dependency>
  2.  
    <groupId>com.taibao</groupId>
  3.  
    <artifactId>Butils</artifactId>
  4.  
    <version>1.0</version>
  5.  
    </dependency>

引入自定义jar方法二:

参考http://blog.csdn.net/tech4j/article/details/45372263

确保在cmd当中可以正确使用mvn命令(通过mvn -v可以验证),然后使用如下命令:

mvn install:install-file -Dfile=D:\ojdbc7.jar -DgroupId=com.tech4j.driver -DartifactId=oracle-connector-java -Dversion=12.1 -Dpackaging=jar

在这段命令中,-Dfile参数指你自定义JAR包文件所在的路径,并依次指定了自定义的GroupId、ArtifactId和Version信息。

通过这种方式,可以简单快速地将第三方JAR包安装到本地仓库中供Maven项目依赖使用。例如:

<dependency>
<groupId>com.tech4j.driver</groupId>
<artifactId>oracle-connector-java</artifactId>
<version>12.1</version>
</dependency>

引入自定义jar方法三:

  1.  
    <dependency>
  2.  
    <groupId>org.jasig.cas</groupId>
  3.  
    <artifactId>cas-server-webapp</artifactId>
  4.  
    <version>4.2.3</version>
  5.  
    <type>war</type>
  6.  
    <!-- 注意scope是system -->
  7.  
    <scope>system</scope>
  8.  
    <!-- <systemPath>C:/Users/ice-wee/Downloads/cas-server-webapp-4.0.3.war</systemPath> -->
  9.  
    <systemPath>${project.basedir}/suiyijiandewenjianjia/cas-server-webapp-4.0.3.war</systemPath>
  10.  
    <!-- systemPath 可以写 1 本地路径 也可以写 2 项目根路径,项目根路径不是相对classpath 。 -->
  11.  
    </dependency>

3.1 Maven内置变量说明:
${basedir} 项目根目录
${project.build.directory} 构建目录,缺省为target
${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
${project.packaging} 打包类型,缺省为jar
${project.xxx} 当前pom文件的任意节点的内容

3.2 使用举例

项目根路径见图:我博客所有文章链接:http://blog.csdn.net/wabiaozia?viewmode=contents

在项目webapp下建一个文件夹(folder):suiyijiandewenjianjia,把cas-server-webapp-4.0.3.war拷到此文件夹

总结:

用第三种方式用systemPath 打包时是不会把jar打到war中的,如果想打到war中可以使用我文中提到的前两种方式。我们项目中一般是缺少某个jar或者某几个jar,从简便和速度效率的角度来说我最推荐的引入本地jar是文中提到的第二种方式。如果缺的jar多的话可以使用批量导入方式,但是并不建议这样做,因为缺少很多jar你首先应该考虑的是,为什么不把环境配好,不让项目缺少那么多jar。

最后:如何把本地jar一同打到war包中

http://www.cnblogs.com/hzm112567/p/6531654.html

我博客所有文章链接:http://blog.csdn.net/wabiaozia?viewmode=contents

(转)maven怎么 引入(或引用/使用) 自定义(或本地/第三方) jar的三种方式 图文教程 方法二最简单的更多相关文章

  1. Eclipse引入jar包的三种方式

    引用自 http://chenxu.wo.blog.163.com/blog/static/50239687201162310620634/ 使用Eclipse开发应用程序,少不了使用第三方jar包, ...

  2. Maven中解决jar包冲突的三种方式

    首先我们在idea中创建一个maven工程,我们只关注pom.xml以及External Libraries中导入的jar包 导入spring-beans.jar <dependency> ...

  3. angularjs 自定义服务的三种方式

    angularjs 中可通过三种($provider,$factory,$service)方式自定义服务,以下是不同的实现形式: // 定义module , module中注入$providevar ...

  4. Maven打jar包的三种方式

    Maven打jar包的三种方式 不包含依赖jar包 该方法打包的jar,不包含依赖的jar包,也没有指定入口类. <build> <plugins> <plugin> ...

  5. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  6. JS基础语法---创建对象---三种方式创建对象:调用系统的构造函数;自定义构造函数;字面量的方式

    创建对象三种方式: 调用系统的构造函数创建对象 自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象) 字面量的方式创建对象 第一种:调用系统的构造函数创建对象 //小苏举例子: //实例化对 ...

  7. idea执行maven命令的三种方式

    前言: java开发的IDE工具idea默认会提供maven生命周期的图形化执行,但是如果我们需要定制化的执行命令的时候,就需要使用手动执行maven命令的方式,今天就和大家讲一下idea手动执行ma ...

  8. eclipse 项目引入第三方jar包 3种方法

    我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通操作 ...

  9. SpringBoot引入第三方jar的Bean的三种方式

    在SpringBoot的大环境下,基本上很少使用之前的xml配置Bean,主要是因为这种方式不好维护而且也不够方便. 因此本篇博文也不再介绍Spring中通过xml来声明bean的使用方式. 一.注解 ...

随机推荐

  1. Locally weighted regression algorithm

    在此引出另一种模型:Locally weighted regression algorithm(LWLR/LWR),通过名字我们可以推断,这是一种更加关注局部变化的模型.的确如此,在普通的linear ...

  2. Requests爬取网页的编码问题

    Requests爬取网页的编码问题 import requests from requests import exceptions def getHtml(): try: r=requests.get ...

  3. python3入门之基础语法

    Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法 ...

  4. 《JAVA设计模式》之抽象工厂模式(Abstract Factory)

    场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU.硬盘.内存.主板.电源.机箱等.为讨论使用简单点,只考虑选择CPU和主板的问题. 事实上,在选择 ...

  5. MySql-第七篇单表查询

    1.MySQL中可以使用+.-.*./. 1>但MySQL中没有提供字符串连接运算符,可以使用concat(a_str,'xxx')进行连接. 2>在算术表达式中使用null,将会导致整个 ...

  6. #python# error:urllib.error.URLError: <urlopen error [Errno 11001] getaddrinfo failed>

    设置代理后访问网页报错,百度有人说地址拼写不对,确认拼写后依然报错 因为使用的是xici免费代理,想到可能代理不可用造成getaddrinfo failed, 更换其他代理,error消失

  7. NGUI的输入框制作(attach- input filed script的使用)

    一,我们添加一个sprite,给这个sprite添加一个box collider ,然后添加input filed script,如下图: 二,我们给sprite添加一个child的label,然后绑 ...

  8. vue中监听返回键

    问题:在项目中,我们常常有需求,当用户在填写表单时,点击返回的时候,我们希望加一个弹窗,确认离开吗,确认将保存为草稿 解决方案:利用 H5的 pushstate(个人理解为增加页面栈)特性与onpop ...

  9. rlogin - 远程注册

    SYNOPSIS(总览) rlogin [-8EKLdx ] [-e char ] [-l username ] host DESCRIPTION(描述) Rlogin 在远程主机 host 上开始 ...

  10. 312-金胜维 P系列2.5寸 480G SATA3 SSD固态硬盘

    金胜维 P系列2.5寸 480G SATA3 SSD固态硬盘 一.概述     P系列为KingSpec金胜维针对入门级消费群体推出的一款高性价SSD固态硬盘,采用7mm超薄金属冲压外壳,板载优质TL ...