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

时间:2016-04-18 12:26:43

标签: gradle

我为多个版本的库构建适配器。 在我的单元测试中,我想测试所有这些版本。它们在中央可用,我可以这样解决它们:

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之间的依赖关系,或者正常的buildcript从哪里解析依赖关系?

1 个答案:

答案 0 :(得分:0)

使用TemporaryFolder,您可以设置ProjectBuilder目录:

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

然后:

Project project = ProjectBuilder.builder()
  .withProjectDir(projectFolder.getRoot())
  .withName("project name")
  .build()