2016-11-15 31 views
0

我一直在使用“sneaker-netted”一组罐子,我最终将发布到一个Gradle友好的回购(Artifactory),但暂时必须保持本地化在我的机器上。使用Gradle从文件系统中解析罐子

我需要在Gradle项目中使用这些jar,它不仅需要能够列出这些为dependencies,而且还使用Eclipse插件来解决Eclipse IDE内部的依赖关系。

这些罐子都有POM,并有自己的传递依赖关系(所有这些都在像Maven Central和JCenter等典型的仓库中)。

我正在寻找一种方法来将这些罐子保存在我的文件系统的某个地方,然后像解决它们一样正常地解决它们dependencies,包括它们的传递依赖关系的解析,并且为了与Gradle Eclipse插件兼容在引擎盖下。

再次,理想的结果是:

  • 添加这些罐子从,比如说依赖,~/special-jars/*
  • 无论依赖于每一个“特殊的罐子的” POM定义,解决这些
  • 当我运行gradle eclipse,Gradle将它们从文件系统中拉出来

这可能吗?如果是这样,怎么样?

回答

1

听起来像你想将你的罐子存储在本地的maven仓库中。

本地Maven回购住在这里默认~/.m2/repository

随着本地仓库的目录结构将严格例如这里GSON在我的本地

$ ls -d $PWD/* 
/Users/some.user/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2-javadoc.jar 
/Users/some.user/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2-javadoc.jar.sha1 
/Users/some.user/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2-sources.jar 
/Users/some.user/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2-sources.jar.sha1 
/Users/some.user/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.jar 
/Users/some.user/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.jar.sha1 
/Users/some.user/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.pom 
/Users/some.user/.m2/repository/com/google/code/gson/gson/2.6.2/gson-2.6.2.pom.sha1 

使用这个我可以使用典型的gradle产出依赖与传递依赖关系。

repositories { 
    mavenLocal() 
} 
dependencies { 
    compile "com.google.code.gson:gson:2.6.2" 
} 

你可以导入通过flatdir罐子但是你将失去在POM中声明的传递依赖。

+0

我想你错过信息的重要位在目录列表。您还应该在指定传递依赖关系的目录中看到'gson-2.6.2.pom' –

+0

@Lance Java,好点我已经更新了答案以显示完整的目录内容,包括'pom'和'sha1'文件 – JBirdVegas

0

JBirdVegas' answer之外,您也可以使用自定义位置。例如,你可以使用一个项目子文件夹

repositories { 
    maven { 
     url file("${rootProject.projectDir}/mavenRepo") 
    } 
} 

或者

repositories { 
    maven { 
     url file("c:/path/to/repo") 
    } 
} 
相关问题