maven项目引用外部jar包的方法

问题描述:java

有一个java maven web项目,须要引入一个第三方包gdal.jar,可是这个包是本身打包的,在maven中央库里面找不到该包,所以我采用传统的方式,将这个包拷贝到:项目名称\src\main\webapp\WEB-INF\lib的目录下,而后经过config build path将该gdal.jar包引入到项目工程中。对于传统java web项目,这么作固然没有问题,可是对于maven项目,项目打包(mvn install)时就会报错,在项目调试时(debug on server)也会出现文件发布不全的问题:tomcat的webapp目录下有该项目,可是里面文件不全,经过web访问时就会404错误。web

问题解决:tomcat

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

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

若是没有maven私服,能够直接经过文件方式引入该jar包,在pom.xml中添加该jar包的引用eclipse

?
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类属性:webapp

内置属性(Maven预约义,用户能够直接使用)maven

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

${version}表示项目版本;ui

${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 >

以上就是本文的所有内容,但愿对你们的学习有所帮助,也但愿你们多多支持脚本之家。

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

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

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

相关文章
相关标签/搜索