zoukankan      html  css  js  c++  java
  • maven项目引用外部jar包的方法

    问题描述:

    有一个java maven web项目,需要引入一个第三方包gdal.jar,但是这个包是自己打包的,在maven中央库里面找不到该包,因此我采用传统的方式,将这个包拷贝到:项目名称srcmainwebappWEB-INFlib的目录下,然后通过config build path将该gdal.jar包引入到项目工程中。对于传统java web项目,这么做当然没有问题,但是对于maven项目,项目打包(mvn install)时就会报错,在项目调试时(debug on server)也会出现文件发布不全的问题:tomcat的webapp目录下有该项目,但是里面文件不全,通过web访问时就会404错误。

    问题解决:

    maven项目的jar包都是通过maven机制进行管理的,自己通过build path将jar引进去,写代码时没问题,但是调试或者发布就会出现问题,解决办法就是将该包也是利用maven的方式引入项目中,解决方式有两种:

    将gdal.jar包上传到公司的maven私服上,然后配置路径

    如果没有maven私服,可以直接通过文件方式引入该jar包,在pom.xml中添加该jar包的引用

    1
    2
    3
    4
    5
    6
    7
    <dependency>
      <groupId>gdal</groupId>
      <artifactId>gdal</artifactId>
      <version>1.0.0</version>
      <scope>system</scope>
      <systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/gdal.jar</systemPath>
    </dependency>

    其中project.basedir为maven内置属性,共有6类属性:

    内置属性(Maven预定义,用户可以直接使用)

    ${basedir}表示项目根目录,即包含pom.xml文件的目录;

    ${version}表示项目版本;

    ${project.basedir}同${basedir};

    ${project.baseUri}表示项目文件地址;

    ${maven.build.timestamp}表示项目构件开始时间;

    ${maven.build.timestamp.format}表示属性${maven.build.timestamp}的展示格式,默认值为yyyyMMdd-HHmm,可自定义其格式,其类型可参考java.text.SimpleDateFormat。

    另外两种方式

    方式1:编译阶段指定外部lib

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
    <source>1.8</source>
    <target>1.8</target>
    <encoding>UTF-8</encoding>
    <compilerArguments>
    <extdirs>lib</extdirs><!--指定外部lib-->
    </compilerArguments>
    </configuration>
    </plugin>

    方式2:将外部jar打入本地maven仓库

    cmd 进入jar包所在路径,执行以下命令

    复制代码 代码如下:
    mvn install:install-file -Dfile=cloud.jar -DgroupId=com.hope.cloud -DartifactId=cloud -Dversion=1.0 -Dpackaging=jar

    引入依赖

    1
    2
    3
    4
    5
    <dependency>
    <groupId>com.hope.cloud</groupId>
    <artifactId>cloud</artifactId>
    <version>1.0</version>
    </dependency>

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

            <div class="art_xg">
    

    您可能感兴趣的文章:

    原文链接:http://blog.csdn.net/pltuyuhong/article/details/50954017

    微信公众号搜索 “ 脚本之家 ” ,选择关注

    业界资讯、不定期红包、送书等活动等着你

  • 相关阅读:
    循环神经网络(LSTM和GRU)(1)
    threading包的例子和queue包的例子
    xgboost调参
    理解 Python 中的 *args 和 **kwargs
    TFRecords文件的生成和读取(1)
    tensorflow函数介绍(4)
    python其他篇(1)
    python实现Restful服务(基于flask)(2)
    开源多线程性能测试工具-sysbench
    MySQL 8.0.0 版本发布,亮点都在这了!
  • 原文地址:https://www.cnblogs.com/jobs-lgy/p/8520126.html
Copyright © 2011-2022 走看看