0

我已经被“sneaker-netted”了一组 jars,我最终将它们发布到对 Gradle 友好的 repo(Artifactory),但是暂时必须在我的机器上保持本地。

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

这些 jar 都具有 POM 并具有自己的传递依赖项(所有这些都位于 Maven Central 和 JCenter 等典型存储库中)。

我正在寻找一种方法将这些 jars 保存在我的文件系统的某个位置,然后像正常一样解析它们dependencies,包括解析它们的传递依赖项,并且还与 Gradle Eclipse 插件在后台工作的兼容。

同样,期望的结果是:

  • 将这些 jars 添加为依赖项,例如,~/special-jars/*
  • 在每个“特殊 jar 的”POM 中定义了任何依赖项,解决这些依赖项
  • 当我运行时gradle eclipse,Gradle 也会从文件系统中拉取它们

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

4

2 回答 2

1

听起来您想将 jar 存储在本地 maven 存储库中。

本地 Maven 仓库默认住在这里~/.m2/repository

使用本地 maven 存储库,目录结构将是严格的,例如这里是我本地的 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"
}

您可以通过 a 导入 jar,flatdir但是您将丢失 pom.xml 中声明的传递依赖项。

于 2016-11-15T03:15:54.197 回答
0

除了JBirdVegas 的回答,您也可以使用自定义位置。例如,您可以使用项目子文件夹

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

或者

repositories {
   maven {
      url file("c:/path/to/repo")
   }
}
于 2016-11-15T13:44:39.047 回答