Implement non-transitive dependencies resolving in main-kts

This commit is contained in:
Ilya Chernikov
2020-06-18 18:54:29 +02:00
parent cd1bf563cd
commit dbb47cf48e
4 changed files with 33 additions and 0 deletions
@@ -47,6 +47,18 @@ class MainKtsTest {
assertSucceeded(res)
}
@Test
fun testResolveHamcrestViaJunit() {
val resOk = evalFile(File("$TEST_DATA_ROOT/resolve-hamcrest-via-junit.main.kts"))
assertSucceeded(resOk)
val resErr = evalFile(File("$TEST_DATA_ROOT/resolve-error-hamcrest-via-junit.main.kts"))
Assert.assertTrue(
resErr is ResultWithDiagnostics.Failure &&
resErr.reports.any { it.message == "Unresolved reference: hamcrest" }
)
}
// @Test
// this test is disabled: the resolving works fine, but ivy resolver is not processing "pom"-type dependencies correctly (
// as far as I can tell)
@@ -0,0 +1,7 @@
@file:DependsOn("junit:junit:4.11", options = ["transitive=false"])
org.hamcrest.Description.NullDescription()
println("Hello, World!")
@@ -0,0 +1,7 @@
@file:DependsOn("junit:junit:4.11")
org.hamcrest.Description.NullDescription()
println("Hello, World!")
@@ -51,6 +51,7 @@ class IvyResolver : ExternalDependenciesResolver {
artifactId[0], artifactId[1], artifactId[2],
if (artifactId.size > 3) artifactId[3] else null,
if (artifactType.isNotEmpty()) artifactType else null,
options,
sourceCodeLocation
)
} catch (e: Exception) {
@@ -69,6 +70,7 @@ class IvyResolver : ExternalDependenciesResolver {
revision: String,
conf: String? = null,
type: String? = null,
options: ExternalDependenciesResolver.Options,
sourceCodeLocation: SourceCode.LocationWithId? = null
): ResultWithDiagnostics<List<File>> {
@@ -112,10 +114,15 @@ class IvyResolver : ExternalDependenciesResolver {
depsDescriptor.addDependencyConfiguration("default", "master,compile")
moduleDescriptor.addDependency(depsDescriptor)
val isTransitive = options.flag("transitive") != false
val resolveOptions = ResolveOptions().apply {
confs = arrayOf("default")
log = LogOptions.LOG_QUIET
isOutputReport = false
if (!isTransitive) {
this.isTransitive = false
}
}
//init resolve report