1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 16:28:12 -07:00

LATEST version work.

This commit is contained in:
Cedric Beust 2016-03-24 22:24:44 -07:00
parent 50641b14df
commit 811e1bceb7

View file

@ -16,11 +16,9 @@ import org.eclipse.aether.collection.CollectResult
import org.eclipse.aether.graph.Dependency import org.eclipse.aether.graph.Dependency
import org.eclipse.aether.graph.DependencyFilter import org.eclipse.aether.graph.DependencyFilter
import org.eclipse.aether.graph.DependencyNode import org.eclipse.aether.graph.DependencyNode
import org.eclipse.aether.metadata.DefaultMetadata
import org.eclipse.aether.repository.RemoteRepository import org.eclipse.aether.repository.RemoteRepository
import org.eclipse.aether.resolution.ArtifactResult import org.eclipse.aether.resolution.*
import org.eclipse.aether.resolution.DependencyRequest
import org.eclipse.aether.resolution.DependencyResolutionException
import org.eclipse.aether.resolution.VersionRequest
import org.eclipse.aether.util.artifact.JavaScopes import org.eclipse.aether.util.artifact.JavaScopes
import org.eclipse.aether.util.filter.AndDependencyFilter import org.eclipse.aether.util.filter.AndDependencyFilter
import org.eclipse.aether.util.filter.DependencyFilterUtils import org.eclipse.aether.util.filter.DependencyFilterUtils
@ -55,7 +53,11 @@ class Aether(val localRepo: File = File(homeDir(TEST_DIR))) {
ExcludeOptionalDependencyFilter(), ExcludeOptionalDependencyFilter(),
DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE)) DependencyFilterUtils.classpathFilter(JavaScopes.COMPILE))
private val kobaltRepositories : List<RemoteRepository> private val kobaltRepositories : List<RemoteRepository>
get() = Kobalt.repos.map { RemoteRepository.Builder("maven", "default", it.url).build() } get() = Kobalt.repos.map {
RemoteRepository.Builder("maven", "default", it.url)
// .setSnapshotPolicy(RepositoryPolicy(false, null, null))
.build()
}
private fun collectRequest(artifact: Artifact) : CollectRequest { private fun collectRequest(artifact: Artifact) : CollectRequest {
with(CollectRequest()) { with(CollectRequest()) {
@ -66,8 +68,28 @@ class Aether(val localRepo: File = File(homeDir(TEST_DIR))) {
} }
} }
fun resolveVersion(artifact: Artifact) fun resolveVersion(artifact: Artifact): VersionRangeResult? {
= system.resolveVersion(session, VersionRequest(artifact, kobaltRepositories, null)) val metadata = DefaultMetadata(artifact.groupId, artifact.artifactId, "maven-metadata.xml",
org.eclipse.aether.metadata.Metadata.Nature.RELEASE)
val r = system.resolveMetadata(session, kobaltRepositories.map {
MetadataRequest(metadata, it, null).apply {
isFavorLocalRepository = false
}
})
// kobaltRepositories.forEach {
// val request = MetadataRequest(metadata, it, null).apply {
// isFavorLocalRepository = false
// }
// val r = system.resolveMetadata(session, listOf(request))
// println("Repo: $it " + r)
// }
val request = VersionRangeRequest(artifact, kobaltRepositories, null)
val result = system.resolveVersionRange(session, request)
return result
}
fun resolve(artifact: Artifact): List<ArtifactResult>? { fun resolve(artifact: Artifact): List<ArtifactResult>? {
try { try {
@ -161,13 +183,14 @@ class AetherDependency(val artifact: Artifact): IClasspathDependency, Comparable
fun main(argv: Array<String>) { fun main(argv: Array<String>) {
KobaltLogger.LOG_LEVEL = 2 KobaltLogger.LOG_LEVEL = 2
val aether = Aether() val aether = Aether()
val artifact = DefaultArtifact("org.testng:testng:RELEASE") val artifact = DefaultArtifact("org.testng:testng:(0,]")
aether.resolveVersion(artifact)?.let { versionResult -> aether.resolveVersion(artifact)?.let { versionResult ->
println("Latest version: " + versionResult.version + " repo: " + versionResult.repository) println("Latest version: " + versionResult + " " + versionResult.highestVersion)
val newArtifact = DefaultArtifact(artifact.groupId, artifact.artifactId, artifact.extension, println("")
versionResult.version) // val newArtifact = DefaultArtifact(artifact.groupId, artifact.artifactId, artifact.extension,
val artifactResult = aether.resolve(newArtifact) // versionResult.highestVersion)
println(" File: " + artifactResult) // val artifactResult = aether.resolve(newArtifact)
// println(" File: " + artifactResult)
} }
val d2 = Aether().resolve(artifact) val d2 = Aether().resolve(artifact)
// val dd = Aether().resolve("org.testng:testng:6.9.9") // val dd = Aether().resolve("org.testng:testng:6.9.9")