我为多个版本的库构建适配器。 在我的单元测试中,我想测试所有这些版本。它们在中央可用,我可以这样解决它们:
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从哪里解析依赖关系?
答案 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()