From b6013e2fbed56d9b78cf8fcf9098a10104f4a6a0 Mon Sep 17 00:00:00 2001 From: LamGC Date: Sat, 16 Jul 2022 20:55:24 +0800 Subject: [PATCH] =?UTF-8?q?refactor(extension):=20=E5=B0=86=E6=9E=84?= =?UTF-8?q?=E4=BB=B6=E4=B8=8B=E8=BD=BD=E8=AF=B7=E6=B1=82=E8=B7=9F=E6=9E=84?= =?UTF-8?q?=E4=BB=B6=E8=A7=A3=E6=9E=90=E8=AF=B7=E6=B1=82=E5=AF=B9=E9=BD=90?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 防止在构件处理过程中因仓库原因出现问题, 因此统一两个请求所使用的仓库列表. --- .../src/main/kotlin/ExtensionFinders.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/scalabot-app/src/main/kotlin/ExtensionFinders.kt b/scalabot-app/src/main/kotlin/ExtensionFinders.kt index 22cbcbb..5a4a2ee 100644 --- a/scalabot-app/src/main/kotlin/ExtensionFinders.kt +++ b/scalabot-app/src/main/kotlin/ExtensionFinders.kt @@ -257,23 +257,25 @@ internal class MavenRepositoryExtensionFinder( } override fun findByArtifact(extensionArtifact: Artifact, extensionsPath: File): Set { + val repositories = repositorySystem.newResolutionRepositories(repoSystemSession, remoteRepositories).toList() log.debug { StringBuilder().apply { append("构件 $extensionArtifact 将在以下仓库拉取: \n") - remoteRepositories.forEach { - append("\t- ${it}\n") + repositories.forEach { + append("\t- $it\n") } } } + val extensionArtifactResult = repositorySystem.resolveArtifact( repoSystemSession, ArtifactRequest( extensionArtifact, - repositorySystem.newResolutionRepositories(repoSystemSession, remoteRepositories), + repositories, null ) ) - val extResolvedArtifact = extensionArtifactResult.artifact + val resolvedArtifact: Artifact? = extensionArtifactResult.artifact if (!extensionArtifactResult.isResolved) { if (extensionArtifactResult.isMissing) { log.warn { "在指定的仓库中找不到构件: ${extensionArtifactResult.artifact}" } @@ -281,6 +283,9 @@ internal class MavenRepositoryExtensionFinder( printArtifactResultExceptions(extensionArtifactResult.exceptions) } return emptySet() + } else if (resolvedArtifact == null) { + log.warn { "无法在指定的仓库中解析构件: $extensionArtifact" } + return emptySet() } log.info { @@ -290,14 +295,14 @@ internal class MavenRepositoryExtensionFinder( } val request = DependencyRequest( - CollectRequest(Dependency(extResolvedArtifact, null), remoteRepositories), + CollectRequest(Dependency(resolvedArtifact, null), repositories), ScopeDependencyFilter(setOf("runtime", "compile", "provided"), null) ) val dependencyResult = repositorySystem.resolveDependencies(repoSystemSession, request) val dependencies = checkAndCollectDependencyArtifacts(extensionArtifact, dependencyResult.artifactResults) ?: return emptySet() - return setOf(MavenExtensionPackage(this, extResolvedArtifact, extensionArtifactResult.repository, dependencies)) + return setOf(MavenExtensionPackage(this, resolvedArtifact, extensionArtifactResult.repository, dependencies)) } private fun checkAndCollectDependencyArtifacts(