用maven打包jar项目其中很多模块引用了相同jar包,如何把它些jar公用,让maven打包不把这公用包打进去

用maven打包jar项目其中很多模块引用了相同jar包,如何把它些jar公用,让maven打包不把这公用包打进去,第1张

注意scope标签,compile和runtime两种依赖打包时会打进去尺首,provided、system、test都不会打进去。如果不想打包时将依赖包含族枝进去,可以按实际情况选择后面的方式。

maven本身引用时,在没有打包前,这些jar都是存储在maven的repository里面给所有项目共享的,这也是maven的目标之一。如下图,请看jar包的兆困敏路径。

本地jar添加到maven仓库的方法。 有些包在mvn repository是没有的,例如IKAnlyzer.jar,那我们又想让maven帮助我们管理,怎么办呢?

一、安装maven环境,配置环境变量

二、下载你需要加入到maven的jar包

1、配置maven环境,计算做敏机-属性-高级系统设置-环境变量,添加系统变量MAVEN_HOME。值指向bin层,复制到变量值里面。

我下载的是apache-maven-3.3.9

2、下载需要加入到maven的包,我这里的例子是IKAnlyzer,因为他在maven仓库里没有。

2.1、先测试maven环境变量是否安装纯尺枝成功

cmd后输入 mvn -v

2.2、在cmd中输入

mvn install:install-file -DgroupId=javax.jms -DartifactId=jms -Dversion=1.1 -Dfile=E:\IKAnalyzer3.2.8.jar -Dpackaging=jar

这些参数与pom.xml里面的参数对应关系。其实4是本地jar的路径。我把包放在E盘了。 如图:

groupId:DgroupId

artifactId:jms

version:Dversion

那在pom.xml 加入:

<dependency>

// groupId与version我在本地测试的时候无法使用".",设置成没有小数点的名称即可

<groupId>javax.jms</groupId>

<artifactId>jms</artifactId>

<version>1.1</version>

<困卖/dependency>

1、首先我在项目根目录中创建一个lib文件夹,将jar包拷贝到lib文件夹下

2、然后我们在maven的pom.xml中配置

<groupId>org.wltea.analyzer</groupId>

<artifactId>IKAnalyzer</artifactId>

<version>2012FF_u1</version>

<scope>system</scope>

<systemPath>${project.basedir}/lib/IKAnalyzer2012FF_u1.jar

</systemPath>

3、这里的groupId和artifactId以及version都是可以随便填写的 ,scope必须填写为system,而systemPath我们现在我们jar包的地址就可以了

4、最后我们必须在maven打包的过程中加入我们这个jar包。因为项目运行的时候需要这个Jar,并且我们得拷贝在WEB-INF/纯隐lib目录下

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-war-plugin</artifactId>

<configuration>

<webResources>

<resource>

<做搜厅directory>${project.basedir}/lib</directory>

<targetPath>WEB-INF/lib</targetPath>

<filtering>false</filtering>

<includes>漏缓

<include>**/*.jar</include>

</includes>

</resource>

</webResources>

</configuration>

<version>2.1.1</version>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11976985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存