gradle dependencies location 添加 maven本地仓库的jar包

gradle dependencies location : gradle编译项目时需要引入对应的依赖包,一般情况下,直接按照正常的格式填写dependencies就可以通过maven远程仓库拉取所需的jar包, 但是凡事总是有特殊存在的。

有些第三方的jar可能没法通过maven远程仓库拉取下来又或者coder对一些源码做了个性化修改而需要自行编译jar来满足自己的需求等。这个时候需要coder把自己修改并编译的jar包添加到maven的本地仓库,在gradle的依赖repositories设置时优先在本地仓库查找jar包。

引入maven本地仓库的jar包

一下的例子就是在用spark处理文本信息并做相似处理时的一个第三方jar的引入,该jar自行编译后手动添加到本地的maven库中。

repositories {
    //由于国内可能无法正常访问maven中心库,这里就填写了两个基本上能正常访问的maven库地址
    mavenLocal()
    maven {
        url 'http://maven.aliyun.com/nexus/content/groups/public/'
    }
    maven {
        url 'https://repo.maven.apache.org/maven2/'
    }
    mavenCentral()
}
dependencies {
    compile 'org.scala-lang:scala-library:2.11.8'
// scanns添加到了本地仓库
    compileOnly 'com.linkedin.nn:scanns_2.11:2.11'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

jar包添加到maven本地仓库

mvn install:install-file -Dfile=D:\scanns_2.11-1.0.0.jar -DgroupId=com.linkedin.nn -DartifactId=scanns_2.11 -Dversion=2.11 -Dpackaging=jar
-- DgroupId和DartifactId构成了该jar包在pom.xml的坐标, 对应依赖的DgroupId和DartifactId
-- Dfile表示需要上传的jar包的绝对路径
-- Durl私服上仓库的url精确地址(打开nexus左侧repositories菜单,可以看到该路径)
-- DrepositoryId服务器的表示id,在nexus的configuration可以看到

发表回复