如何在Maven项目中引入自己的jar包

如何在Maven项目中引入自己的jar包,第1张

Maven 构建的项目都有自己的POM文件 ,而在pom文件中添加自己需要依赖的jar的信息就可以在项目中引入自己需要的依赖jar;

添加方法如下

groupId :是指这个jar在本地仓库的包路径

artifactId:是这个jar的包名;

version:是这个jar版本号;

scope:scope在maven的依赖管理中主要负责项目的部署他的值有:

默认就是compile,什么都不配置也就是意味着compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去

scope为test表示依赖项目仅仅参与测试相关的工作,包括测试代码的编译

runntime表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。

provided意味着打包的时候可以不用包进去,别的设施(Web Container)会提供

从参与度来说,也provided相同,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用。

因为有些jar包在Maven中央仓库不存在,比如sqljdbcjar在Maven中央仓库中找不到
那么我们就需要额外下载所需jar包然后添加到本地仓库
首先当然是配置好Maven环境了,然后在下载的jar包下执行
1mvn install:install-file -Dfile=sqljdbc4jar -DgroupId=commicrosoftsqlserver -DartifactId=sqljdbc4 -Dversion=40 -Dpackaging=jar

然后就可以在项目下的pomxml 文件中添加
12345<dependency> <groupId>commicrosoftsqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>40</version> </dependency>

原则上Maven的设计是不需要这么做的,因为pomxml中依赖的jar包会自动实现从中央仓库下载到本地仓库。但是公司设计了一个setting,如果本地仓库没有,就去setting指定的url中下载jar包,如果还没有就报错。
考虑到setting中url的jar包比较老,如果需要用最新的,则需要将jar包手动下载到本地仓库。
比如我下载了
lucene-queryparser-461jar
怎么添加到本地仓库呢?
步骤:
1cmd命令进入该jar包所在路径
2执行命令
mvn install:install-file -Dfile=lucene-queryparser-461jar -DgroupId=orgapachelucene -DartifactId=lucene-queryparser -Dversion=461 -Dpackaging=jar
(不同的jar包相对应替换对应部分)
另外我尝试了下面的方法,发现不行:
直接写一个空的pom,里头包含对所需要jar包的依赖,通过这种方式希望将jar包下载到本地仓库。但是应用代码中没用到,maven命令没有下载这个jar包到本地仓库。
补充,-DgroupId和-DartifactId的作用其实是指定了这个jar包的安装在repository的安装路径,只是用来告诉项目去这个路径下寻找这个名称的jar包。比如:
mvn install:install-file -Dfile=freemarker-2313jar -DgroupId=freemarker -DartifactId=freemarker -Dversion=2313 -Dpackaging=jar
就是安装到了repository\freemarker\freemarker\2313目录下,如果在dependency的依赖里也这么写的话,就可以到对应的目录去寻找。
对于maven中存在classifier的,例如
<dependency>
<groupId>orgapachehadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>220</version>
<classifier>tests</classifier>
</dependency>
就加一个-D参数就可以了,如下:
mvn install:install-file -Dfile=hadoop-hdfs-220-testsjar -DgroupId=orgapachehadoop -DartifactId=hadoop-hdfs -Dversion=220 -Dclassifier=tests -Dpackaging=jar

原则上Maven的设计是不需要这么做的,因为pomxml中依赖的jar包会自动实现从中央仓库下载到本地仓库。但是公司设计了一个setting,如果本地仓库没有,就去setting指定的url中下载jar包,如果还没有就报错。
考虑到setting中url的jar包比较老,如果需要用最新的,则需要将jar包手动下载到本地仓库。
比如我下载了
lucene-queryparser-461jar
怎么添加到本地仓库呢?
步骤:
1cmd命令进入该jar包所在路径
2执行命令
mvn install:install-file -Dfile=lucene-queryparser-461jar -DgroupId=orgapachelucene -DartifactId=lucene-queryparser -Dversion=461 -Dpackaging=jar
(不同的jar包相对应替换对应部分)
另外我尝试了下面的方法,发现不行:
直接写一个空的pom,里头包含对所需要jar包的依赖,通过这种方式希望将jar包下载到本地仓库。但是应用代码中没用到,maven命令没有下载这个jar包到本地仓库。
补充,-DgroupId和-DartifactId的作用其实是指定了这个jar包的安装在repository的安装路径,只是用来告诉项目去这个路径下寻找这个名称的jar包。比如:
mvn install:install-file -Dfile=freemarker-2313jar -DgroupId=freemarker -DartifactId=freemarker -Dversion=2313 -Dpackaging=jar
就是安装到了repository\freemarker\freemarker\2313目录下,如果在dependency的依赖里也这么写的话,就可以到对应的目录去寻找。
对于maven中存在classifier的,例如
<dependency>
<groupId>orgapachehadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>220</version>
<classifier>tests</classifier>
</dependency>
就加一个-D参数就可以了,如下:
mvn install:install-file -Dfile=hadoop-hdfs-220-testsjar -DgroupId=orgapachehadoop -DartifactId=hadoop-hdfs -Dversion=220 -Dclassifier=tests -Dpackaging=jar


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

原文地址: http://outofmemory.cn/yw/13383870.html

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

发表评论

登录后才能评论

评论列表(0条)

保存