Fix ivy resolver: deps config and maven repos:
Transitive dependencies weren't fetched properly in some cases, because of the two problems: - missing dependency configuration for the root dependency - using URLResolver for the maven-based (IBiblio) resolvers Also adding resolver name for easier debugging.
This commit is contained in:
@@ -16,7 +16,6 @@ import org.apache.ivy.core.settings.IvySettings
|
|||||||
import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter
|
import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter
|
||||||
import org.apache.ivy.plugins.resolver.ChainResolver
|
import org.apache.ivy.plugins.resolver.ChainResolver
|
||||||
import org.apache.ivy.plugins.resolver.IBiblioResolver
|
import org.apache.ivy.plugins.resolver.IBiblioResolver
|
||||||
import org.apache.ivy.plugins.resolver.IBiblioResolver.DEFAULT_M2_ROOT
|
|
||||||
import org.apache.ivy.plugins.resolver.URLResolver
|
import org.apache.ivy.plugins.resolver.URLResolver
|
||||||
import org.apache.ivy.util.DefaultMessageLogger
|
import org.apache.ivy.util.DefaultMessageLogger
|
||||||
import org.apache.ivy.util.Message
|
import org.apache.ivy.util.Message
|
||||||
@@ -69,6 +68,7 @@ class IvyResolver : GenericRepositoryWithBridge {
|
|||||||
val resolver =
|
val resolver =
|
||||||
if (ivyResolvers.size == 1) ivyResolvers.first()
|
if (ivyResolvers.size == 1) ivyResolvers.first()
|
||||||
else ChainResolver().also {
|
else ChainResolver().also {
|
||||||
|
it.name = "chain"
|
||||||
for (resolver in ivyResolvers) {
|
for (resolver in ivyResolvers) {
|
||||||
it.add(resolver)
|
it.add(resolver)
|
||||||
}
|
}
|
||||||
@@ -92,6 +92,7 @@ class IvyResolver : GenericRepositoryWithBridge {
|
|||||||
val depArtifact = DefaultDependencyArtifactDescriptor(depsDescriptor, artifactName, type, type, null, null)
|
val depArtifact = DefaultDependencyArtifactDescriptor(depsDescriptor, artifactName, type, type, null, null)
|
||||||
depsDescriptor.addDependencyArtifact(conf, depArtifact)
|
depsDescriptor.addDependencyArtifact(conf, depArtifact)
|
||||||
}
|
}
|
||||||
|
depsDescriptor.addDependencyConfiguration("default", "*")
|
||||||
moduleDescriptor.addDependency(depsDescriptor)
|
moduleDescriptor.addDependency(depsDescriptor)
|
||||||
|
|
||||||
val resolveOptions = ResolveOptions().apply {
|
val resolveOptions = ResolveOptions().apply {
|
||||||
@@ -117,10 +118,10 @@ class IvyResolver : GenericRepositoryWithBridge {
|
|||||||
val url = repositoryCoordinates.url
|
val url = repositoryCoordinates.url
|
||||||
if (url != null) {
|
if (url != null) {
|
||||||
ivyResolvers.add(
|
ivyResolvers.add(
|
||||||
URLResolver().apply {
|
IBiblioResolver().apply {
|
||||||
isM2compatible = true
|
isM2compatible = true
|
||||||
name = repositoryCoordinates.name.takeIf { it.isValidParam() } ?: url.host
|
name = repositoryCoordinates.name.takeIf { it.isValidParam() } ?: url.host
|
||||||
addArtifactPattern("${url.toString().let { if (it.endsWith('/')) it else "$it/" }}$DEFAULT_ARTIFACT_PATTERN")
|
root = url.toExternalForm()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
return true
|
return true
|
||||||
@@ -129,8 +130,6 @@ class IvyResolver : GenericRepositoryWithBridge {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val DEFAULT_ARTIFACT_PATTERN = "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
Message.setDefaultLogger(DefaultMessageLogger(1))
|
Message.setDefaultLogger(DefaultMessageLogger(1))
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user