maven 多个仓库
- 作者: 柳爱常
- 来源: 51数据库
- 2020-09-23
安装Jar包到本地仓库,需要软件Maven工具。需要本机已经安装好了Maven,CMD命令行中可以运行mvn命令。
具体操作指令:
[java] view plain copy
在CODE上查看代码片派生到我的代码片
mvn install:install-file
-Dmaven.repo.local=D:\tempRepo(此处是仓库位置)
-DgroupId=com.lianlian
-DartifactId=hjsj
-Dversion=0.2
-Dpackaging=jar
-Dfile=C:\Users\ASUS\Desktop\hjsj.jar(此处jar包位置)
参数详解:
-Dmaven.repo.local:指定仓库目录根位置,如果本机上包含多个仓库将非常有用。
-DgroupId:指定Jar包的开发团队,一般为公司域名倒写去掉www开头。例如百度就是com.baidu等
-DartifactId:开发的项目名称。
-Dversion:文件版本。
-Dpackaging:文件格式,jar或则war等。
-Dfile:文件位置。
特别注意:
上面的操作指令为了显示方便才写成多行的,所以需要在TXT中编辑成一行,上面的每行与每行之间不能连写需要空一格。
否则cmd会认为他是多条指令分开执行。
原则上maven的设计是不需要这么做的,因为pom.xml中依赖的jar包会自动实现从中央仓库下载到本地仓库。但是公司设计了一个setting,如果本地仓库没有,就去setting指定的url中下载jar包,如果还没有就报错。
考虑到setting中url的jar包比较老,如果需要用最新的,则需要将jar包手动下载到本地仓库。
比如我下载了
lucene-queryparser-4.6.1.jar
怎么添加到本地仓库呢?
步骤:
1.cmd命令进入该jar包所在路径
2.执行命令
mvn install:install-file -dfile=lucene-queryparser-4.6.1.jar -dgroupid=org.apache.lucene -dartifactid=lucene-queryparser -dversion=4.6.1 -dpackaging=jar
(不同的jar包相对应替换对应部分)
另外我尝试了下面的方法,发现不行:
直接写一个空的pom,里头包含对所需要jar包的依赖,通过这种方式希望将jar包下载到本地仓库。但是应用代码中没用到,maven命令没有下载这个jar包到本地仓库。
补充,-dgroupid和-dartifactid的作用其实是指定了这个jar包的安装在repository的安装路径,只是用来告诉项目去这个路径下寻找这个名称的jar包。比如:
mvn install:install-file -dfile=freemarker-2.3.13.jar -dgroupid=freemarker -dartifactid=freemarker -dversion=2.3.13 -dpackaging=jar
就是安装到了repository\freemarker\freemarker\2.3.13目录下,如果在dependency的依赖里也这么写的话,就可以到对应的目录去寻找。
对于maven中存在classifier的,例如
org.apache.hadoop
hadoop-hdfs
2.2.0
tests
就加一个-d参数就可以了,如下:
mvn install:install-file -dfile=hadoop-hdfs-2.2.0-tests.jar -dgroupid=org.apache.hadoop -dartifactid=hadoop-hdfs -dversion=2.2.0 -dclassifier=tests -dpackaging=jar
具体操作指令:
[java] view plain copy
在CODE上查看代码片派生到我的代码片
mvn install:install-file
-Dmaven.repo.local=D:\tempRepo(此处是仓库位置)
-DgroupId=com.lianlian
-DartifactId=hjsj
-Dversion=0.2
-Dpackaging=jar
-Dfile=C:\Users\ASUS\Desktop\hjsj.jar(此处jar包位置)
参数详解:
-Dmaven.repo.local:指定仓库目录根位置,如果本机上包含多个仓库将非常有用。
-DgroupId:指定Jar包的开发团队,一般为公司域名倒写去掉www开头。例如百度就是com.baidu等
-DartifactId:开发的项目名称。
-Dversion:文件版本。
-Dpackaging:文件格式,jar或则war等。
-Dfile:文件位置。
特别注意:
上面的操作指令为了显示方便才写成多行的,所以需要在TXT中编辑成一行,上面的每行与每行之间不能连写需要空一格。
否则cmd会认为他是多条指令分开执行。
原则上maven的设计是不需要这么做的,因为pom.xml中依赖的jar包会自动实现从中央仓库下载到本地仓库。但是公司设计了一个setting,如果本地仓库没有,就去setting指定的url中下载jar包,如果还没有就报错。
考虑到setting中url的jar包比较老,如果需要用最新的,则需要将jar包手动下载到本地仓库。
比如我下载了
lucene-queryparser-4.6.1.jar
怎么添加到本地仓库呢?
步骤:
1.cmd命令进入该jar包所在路径
2.执行命令
mvn install:install-file -dfile=lucene-queryparser-4.6.1.jar -dgroupid=org.apache.lucene -dartifactid=lucene-queryparser -dversion=4.6.1 -dpackaging=jar
(不同的jar包相对应替换对应部分)
另外我尝试了下面的方法,发现不行:
直接写一个空的pom,里头包含对所需要jar包的依赖,通过这种方式希望将jar包下载到本地仓库。但是应用代码中没用到,maven命令没有下载这个jar包到本地仓库。
补充,-dgroupid和-dartifactid的作用其实是指定了这个jar包的安装在repository的安装路径,只是用来告诉项目去这个路径下寻找这个名称的jar包。比如:
mvn install:install-file -dfile=freemarker-2.3.13.jar -dgroupid=freemarker -dartifactid=freemarker -dversion=2.3.13 -dpackaging=jar
就是安装到了repository\freemarker\freemarker\2.3.13目录下,如果在dependency的依赖里也这么写的话,就可以到对应的目录去寻找。
对于maven中存在classifier的,例如
hadoop-hdfs
就加一个-d参数就可以了,如下:
mvn install:install-file -dfile=hadoop-hdfs-2.2.0-tests.jar -dgroupid=org.apache.hadoop -dartifactid=hadoop-hdfs -dversion=2.2.0 -dclassifier=tests -dpackaging=jar
推荐阅读
