Implement non-transitive dependencies resolving in main-kts
This commit is contained in:
+12
@@ -47,6 +47,18 @@ class MainKtsTest {
|
|||||||
assertSucceeded(res)
|
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
|
// @Test
|
||||||
// this test is disabled: the resolving works fine, but ivy resolver is not processing "pom"-type dependencies correctly (
|
// this test is disabled: the resolving works fine, but ivy resolver is not processing "pom"-type dependencies correctly (
|
||||||
// as far as I can tell)
|
// as far as I can tell)
|
||||||
|
|||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
@file:DependsOn("junit:junit:4.11", options = ["transitive=false"])
|
||||||
|
|
||||||
|
org.hamcrest.Description.NullDescription()
|
||||||
|
|
||||||
|
println("Hello, World!")
|
||||||
|
|
||||||
+7
@@ -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],
|
artifactId[0], artifactId[1], artifactId[2],
|
||||||
if (artifactId.size > 3) artifactId[3] else null,
|
if (artifactId.size > 3) artifactId[3] else null,
|
||||||
if (artifactType.isNotEmpty()) artifactType else null,
|
if (artifactType.isNotEmpty()) artifactType else null,
|
||||||
|
options,
|
||||||
sourceCodeLocation
|
sourceCodeLocation
|
||||||
)
|
)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
@@ -69,6 +70,7 @@ class IvyResolver : ExternalDependenciesResolver {
|
|||||||
revision: String,
|
revision: String,
|
||||||
conf: String? = null,
|
conf: String? = null,
|
||||||
type: String? = null,
|
type: String? = null,
|
||||||
|
options: ExternalDependenciesResolver.Options,
|
||||||
sourceCodeLocation: SourceCode.LocationWithId? = null
|
sourceCodeLocation: SourceCode.LocationWithId? = null
|
||||||
): ResultWithDiagnostics<List<File>> {
|
): ResultWithDiagnostics<List<File>> {
|
||||||
|
|
||||||
@@ -112,10 +114,15 @@ class IvyResolver : ExternalDependenciesResolver {
|
|||||||
depsDescriptor.addDependencyConfiguration("default", "master,compile")
|
depsDescriptor.addDependencyConfiguration("default", "master,compile")
|
||||||
moduleDescriptor.addDependency(depsDescriptor)
|
moduleDescriptor.addDependency(depsDescriptor)
|
||||||
|
|
||||||
|
val isTransitive = options.flag("transitive") != false
|
||||||
|
|
||||||
val resolveOptions = ResolveOptions().apply {
|
val resolveOptions = ResolveOptions().apply {
|
||||||
confs = arrayOf("default")
|
confs = arrayOf("default")
|
||||||
log = LogOptions.LOG_QUIET
|
log = LogOptions.LOG_QUIET
|
||||||
isOutputReport = false
|
isOutputReport = false
|
||||||
|
if (!isTransitive) {
|
||||||
|
this.isTransitive = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//init resolve report
|
//init resolve report
|
||||||
|
|||||||
Reference in New Issue
Block a user