Slackbot
01/07/2024, 11:27 PMVampire
01/08/2024, 8:36 AMthadhouse
01/08/2024, 9:37 AMthadhouse
01/08/2024, 9:46 AMclass DirectMetadataAccessVariantRule implements ComponentMetadataRule {
@javax.inject.Inject
ObjectFactory getObjects() { }
void execute(ComponentMetadataContext context) {
def id = context.details.id
context.details.maybeAddVariant("apiElementsWithMetadata", "api") {
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.DOCUMENTATION))
attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named(DocsType, "all-files"))
}
withFiles {
addFile("\${id.name}-\${id.version}.pom")
addFile("\${id.name}-\${id.version}.module")
}
}
context.details.maybeAddVariant("compileWithMetadata", "compile") {
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.DOCUMENTATION))
attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named(DocsType, "all-files"))
}
withFiles {
addFile("\${id.name}-\${id.version}.pom")
}
}
}
}
configurations.nativeRelease {
attributes { attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named(DocsType, "all-files")) }
}
dependencies {
components {
all(DirectMetadataAccessVariantRule)
}
}
task runThing {
doLast {
def cfg = project.configurations.nativeRelease
ArtifactView view = cfg.getIncoming().artifactView(viewConfiguration -> {
viewConfiguration.attributes(attributeContainer -> {
attributeContainer.attribute(DocsType.DOCS_TYPE_ATTRIBUTE, objects.named(DocsType, "all-files"));
});
});
view.files.each {
println it
}
println it
}
}
That was the code I had, and the files resolved are only the actual artifacts, and not the pom/gradle module filesthadhouse
01/08/2024, 5:27 PMVampire
01/08/2024, 5:42 PM