通过maven命令手动安装jar到本地仓库

使用maven来管理构件项目的时候往往会遇到这样一个问题,你的项目依赖于一个第三方的jar(这里就拿jar类型的构件举例了),但是这个jar在maven的中心仓库没,这时怎么在pom.xml中引用这个third.jar呢?

     在pom中引用依赖的的第三方构件的时候,这些构件可以是来源于maven的公共仓库central,也可以是位于自己机器上的本地仓库,当然也可以是自己搭建的nexus私服
仓库,为了让项目顺利的编译运行,我们可以先把这个third.jar安装到maven的本地仓库,默认为是为${user}/.m2/repositories/,具体的安装步骤如下:
通过mvn的install-file命令即可完成上述任务,完整的命令格式如下:
mvn install:install-file  -Dfile=your-jar-file-path  -DgroupId=com.your.group  -DartifactId=your-artifactId -Dversion=x.x -Dpackaging=jar
例如我将这个third.jar,首先进入到third.jar所在的文件目录,然后按住shift点击鼠标右键选择打开cmd窗口,执行mvn安装命令如下:
mvn install:install-file  -Dfile=third.jar  -DgroupId=com.hangl.third  -DartifactId=third-utils -Dversion=1.x -Dpackaging=jar


然后我们可以在本地仓库下看到相应的目录已经创建

进入1.0这个目录我们可以看到里边有一个pom文件,里边的坐标信息就是我们刚才命令行中设定的:

具体内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.hangl.third</groupId>
  <artifactId>third-utils</artifactId>
  <version>1.0</version>
  <description>POM was created from install:install-file</description>
</project>

这样我们就可以在pom中引用这个依赖了。不过这是最贱的情形,如果third.jar依赖于另一个jar-third-dependency.jar,这时候就需要改一下这个pom文件,在pom中声明其依赖
的其他artifact,修改完内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.hangl.third</groupId>
  <artifactId>third-utils</artifactId>
  <version>1.0</version>
  <description>POM was created from install:install-file</description>
  <!-- 添加依赖的构件 -->
  <dependencies>
    <dependency>
      <groupId>com.hangl.helper</groupId>
      <artifactId>third-dependency</artifactId>
      <version>2.0.0</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
</project>
这样这个传递依赖的构件也能引用到项目中。其结构类似如图所示依赖关系:


上图所示的依赖正是我的项目中依赖的构件,项目中一个列表的功能我想用android support-v7包中的recyclerview来实现,无奈maven的公共仓库没有!经过一番检索之后我
找到了三个相关的jar包,通过上述的步骤我将这三个jar安装到maven的本地仓库,我的项目里就可以正常使用了,图示的版本号是我自己随便定义的,大家可以随意更改。

猜你喜欢

转载自blog.csdn.net/u010010664/article/details/89917564