mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-29 22:27:31 +00:00
refactor(extension): 将构件下载请求跟构件解析请求对齐.
防止在构件处理过程中因仓库原因出现问题, 因此统一两个请求所使用的仓库列表.
This commit is contained in:
parent
f79a4e4ff3
commit
b6013e2fbe
@ -257,23 +257,25 @@ internal class MavenRepositoryExtensionFinder(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun findByArtifact(extensionArtifact: Artifact, extensionsPath: File): Set<FoundExtensionPackage> {
|
override fun findByArtifact(extensionArtifact: Artifact, extensionsPath: File): Set<FoundExtensionPackage> {
|
||||||
|
val repositories = repositorySystem.newResolutionRepositories(repoSystemSession, remoteRepositories).toList()
|
||||||
log.debug {
|
log.debug {
|
||||||
StringBuilder().apply {
|
StringBuilder().apply {
|
||||||
append("构件 $extensionArtifact 将在以下仓库拉取: \n")
|
append("构件 $extensionArtifact 将在以下仓库拉取: \n")
|
||||||
remoteRepositories.forEach {
|
repositories.forEach {
|
||||||
append("\t- ${it}\n")
|
append("\t- $it\n")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val extensionArtifactResult = repositorySystem.resolveArtifact(
|
val extensionArtifactResult = repositorySystem.resolveArtifact(
|
||||||
repoSystemSession,
|
repoSystemSession,
|
||||||
ArtifactRequest(
|
ArtifactRequest(
|
||||||
extensionArtifact,
|
extensionArtifact,
|
||||||
repositorySystem.newResolutionRepositories(repoSystemSession, remoteRepositories),
|
repositories,
|
||||||
null
|
null
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
val extResolvedArtifact = extensionArtifactResult.artifact
|
val resolvedArtifact: Artifact? = extensionArtifactResult.artifact
|
||||||
if (!extensionArtifactResult.isResolved) {
|
if (!extensionArtifactResult.isResolved) {
|
||||||
if (extensionArtifactResult.isMissing) {
|
if (extensionArtifactResult.isMissing) {
|
||||||
log.warn { "在指定的仓库中找不到构件: ${extensionArtifactResult.artifact}" }
|
log.warn { "在指定的仓库中找不到构件: ${extensionArtifactResult.artifact}" }
|
||||||
@ -281,6 +283,9 @@ internal class MavenRepositoryExtensionFinder(
|
|||||||
printArtifactResultExceptions(extensionArtifactResult.exceptions)
|
printArtifactResultExceptions(extensionArtifactResult.exceptions)
|
||||||
}
|
}
|
||||||
return emptySet()
|
return emptySet()
|
||||||
|
} else if (resolvedArtifact == null) {
|
||||||
|
log.warn { "无法在指定的仓库中解析构件: $extensionArtifact" }
|
||||||
|
return emptySet()
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info {
|
log.info {
|
||||||
@ -290,14 +295,14 @@ internal class MavenRepositoryExtensionFinder(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val request = DependencyRequest(
|
val request = DependencyRequest(
|
||||||
CollectRequest(Dependency(extResolvedArtifact, null), remoteRepositories),
|
CollectRequest(Dependency(resolvedArtifact, null), repositories),
|
||||||
ScopeDependencyFilter(setOf("runtime", "compile", "provided"), null)
|
ScopeDependencyFilter(setOf("runtime", "compile", "provided"), null)
|
||||||
)
|
)
|
||||||
val dependencyResult = repositorySystem.resolveDependencies(repoSystemSession, request)
|
val dependencyResult = repositorySystem.resolveDependencies(repoSystemSession, request)
|
||||||
val dependencies = checkAndCollectDependencyArtifacts(extensionArtifact, dependencyResult.artifactResults)
|
val dependencies = checkAndCollectDependencyArtifacts(extensionArtifact, dependencyResult.artifactResults)
|
||||||
?: return emptySet()
|
?: return emptySet()
|
||||||
|
|
||||||
return setOf(MavenExtensionPackage(this, extResolvedArtifact, extensionArtifactResult.repository, dependencies))
|
return setOf(MavenExtensionPackage(this, resolvedArtifact, extensionArtifactResult.repository, dependencies))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkAndCollectDependencyArtifacts(
|
private fun checkAndCollectDependencyArtifacts(
|
||||||
|
Loading…
Reference in New Issue
Block a user