使用Gradle API将依赖项解析为Gradle缓存

使用Gradle API将依赖项解析为Gradle缓存,gradle,Gradle,我正在为一个库的多个版本构建一个适配器。 在我的单元测试中,我想针对所有这些版本进行测试。它们在central上可用,我可以这样解决它们: def version = '2.0' def project = ProjectBuilder.builder().build() def config = project.configurations.create('config'); def dependency = project.dependencies.create("org.company:a

我正在为一个库的多个版本构建一个适配器。 在我的单元测试中,我想针对所有这些版本进行测试。它们在central上可用,我可以这样解决它们:

def version = '2.0'
def project = ProjectBuilder.builder().build()
def config = project.configurations.create('config');
def dependency = project.dependencies.create("org.company:artifact:${version}")
config.dependencies.add(dependency)
project.repositories {
    jcenter()
}
configuration.resolve()

问题是依赖项被下载到
userHome
目录中的临时项目目录中。
ProjectBuilder
没有提供将特定路径设置为
userHome
的方法。因此,必须一次又一次地下载相同的依赖项。Gradle API是否提供了从
~/.Gradle/caches/modules-2/files-2.1
动态解析依赖关系的方法,或者在普通构建脚本将依赖关系从/解析到的任何地方?

使用
临时文件夹
,您可以设置
项目生成器
目录:

@Rule
public static TemporaryFolder projectFolder
@BeforeClass
public static void setupOnce() {
    projectFolder = new TemporaryFolder()
}
然后:

你的问题中没有提到。你已经试过了吗?
Project project = ProjectBuilder.builder()
  .withProjectDir(projectFolder.getRoot())
  .withName("project name")
  .build()