首页 > 编程语言 >java外部依赖 打包

java外部依赖 打包

时间:2022-12-11 12:38:17浏览次数:64  
标签:java lib 外部 jar maven pom INF 打包


<!--pom.xml file-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<!--子模块单独使用外部lib 使用下面语句-->
<!--<directory>lib</directory>-->
<!--多个子模块使用外部lib 使用下面语句-->
<directory>${user.dir}/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</build>

参考:​​javascript:void(0)​​

maven作为包管理工具,好处不必多说

但是有些情况,比如需要引入第三方包,如快递鸟,支付宝,微信等jar包(当然有可能直接提供maven依赖)

如果直接下载到本地之后,怎么整合到自己的maven工程呢?

方式挺多的,下面列举四种方式

1. 上传到maven中心仓库

​https://oss.sonatype.org/​

愿意折腾可也搞搞,可以参考 ​​如何发布Jar包到Maven中央仓库​​(确实比较麻烦)

如这是我手动上传到maven中央仓库的jar包 ​​https://mvnrepository.com/search?q=chendahai​

优点:可以直接在pom.xml中引入,打包部署没有问题

缺点:上传复杂,麻烦(创建工单,生成秘钥等等)

2. 搭建maven私服

手动在后台管理页面上传,之后pom.xml引入

上传方式查看 ​​maven私服nexus上传第三方jar包以及下载​​

优点:下载速度快,maven聚合项目更适用,内部适用deploy即可,打包部署没有问题

缺点:相比第一种还要麻烦些,还占用本地服务器资源

3. 传统方式

java SE的套路

新建lib包,之后导入(eclipse直接build path)(idea麻烦些:File→project structure→libraries→+jar包)

java外部依赖 打包_上传

优点:简单,不用做额外的配置

缺点:协作开发,多人都需做同样的操作,沟通也是一回事

4. pom文件scope的system属性

优点:配置后之后直接引入,maven reImport即可

缺点:没啥缺点,就是配置者得费些时间

前置条件

要引入如下taobao-sdk-java.jar

操作

  1. 自定义目录,这里在project的根目录新建lib文件夹,将jar放进去
  2. pom.xml中引入


<dependency>
<groupId>dingding</groupId>
<artifactId>dingding</artifactId>
<version>2.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/taobao-sdk-java.jar</systemPath>
</dependency>


注意:

  • groupId:自定义
  • artifactId:自定义
  • version:自定义
  • scope:必须是system
  • systemPath:jar包的路径(idea编写的时候会有提示的)

通过上述方式,在开发环境没有什么问题,不会存在什么包找不到等情况

但是,maven project部署一般打包发布,所以打包是需要额外配置的(上述的第一二中方式不需要做额外处理)

处理打包

打包的时候需要做如下配置,需要通过resource标签引入,位置build→resources→resource


<build>
<resources>
<resource>
<directory>lib</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>\*\*/\*.jar</include>
</includes>
</resource>
</resources>
</build>


  • directory:指定lib文件夹的位置,由于是相对工程根目录,所以直接写上lib即可
  • targetPath:打包到的文件夹位置,写上BOOT-INF/lib即可,或者是WEB-INF/lib。【斜杠(/)加不加都行,如果是mac的话写./】
  • includes:一般都是以jar结尾,就写**/*.jar

较为完整的pom.xml


<dependency\>
<groupId\>dingding</groupId\>
<artifactId\>dingding</artifactId\>
<version\>2.8</version\>
<scope>system</scope>
<systemPath>${project.basedir}/lib/taobao-sdk-java-auto\_1479188381469-20190628.jar</systemPath>
</dependency\>

</dependencies\>
<build\>
<resources\>
<resource>
<directory>lib</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>\*\*/\*.jar</include>
</includes>
</resource>
</resources\>


ok,mvn package即可。

5. mvn install安装到本地

该方案差异性太大,不推荐这种方案



标签:java,lib,外部,jar,maven,pom,INF,打包
From: https://blog.51cto.com/kuangke/5928190

相关文章