maven项目引用外部jar包的方法
问题描述:
有一个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错误。
问题解决:
maven项目的jar包都是通过maven机制进行管理的,自己通过build path将jar引进去,写代码时没问题,但是调试或者发布就会出现问题,解决办法就是将该包也是利用maven的方式引入项目中,解决方式有两种:
将gdal.jar包上传到公司的maven私服上,然后配置路径
如果没有maven私服,可以直接通过文件方式引入该jar包,在pom.xml中添加该jar包的引用
<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
<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包所在路径,执行以下命令
引入依赖
<dependency> <groupid>com.hope.cloud</groupid> <artifactid>cloud</artifactid> <version>1.0</version> </dependency>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
maven项目引用外部jar包的方法
-
导出maven项目依赖的jar包(图文教程)
-
Maven项目打包成war包部署到Tomcat的方法
-
Android Studio 在项目中引用第三方jar包的方法
-
maven项目打包时将依赖的jar包和项目代码分离
-
IDEA 中导入Eclipse 的 maven 项目,及 IDEA 将SpringBoot 打成 jar 包
-
使用maven引用本地jar包,并将整个项目打包成war包,部署到linuxTomcat服务器上
-
idea如何将外部第三方引入的jar,在maven项目打jar包时引入进去
-
通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包
-
springboot项目打包成jar或war包的方式(引用了本地jar包的)