使用 Gradle 从文件系统解析 jar

Using Gradle to resolve jars from the file system

我已经 "sneaker-netted" 了一组 jar,我最终会发布到一个 Gradle 友好的 repo (Artifactory),但是暂时必须保留在我的机器上.

我需要在 Gradle 项目中使用这些 jar,该项目不仅需要能够将它们列为 dependencies,而且还使用 Eclipse 插件来解析我的 Eclipse 中的依赖关系 IDE.

这些 jar 都有 POM 并且有自己的传递依赖项(所有这些都在典型的 repos 中,如 Maven Central 和 JCenter 等)。

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

同样,期望的结果是:

这可以吗?如果是,怎么做?

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

默认情况下,本地 Maven Repo 位于此处 ~/.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"
}

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

除了 ,您还可以使用自定义位置。例如,您可以使用项目子文件夹

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

或者

repositories {
   maven {
      url file("c:/path/to/repo")
   }
}