PreserveFirstFoundResourceTransformer

open class PreserveFirstFoundResourceTransformer @Inject constructor(val objectFactory: ObjectFactory) : ResourceTransformer

A resource processor that preserves the first resource matched and excludes all others.

This is useful when you set shadowJar.duplicatesStrategy = DuplicatesStrategy.INCLUDE (the default behavior) and want to ensure that only the first found resource is included in the final JAR. If there are multiple resources with the same path in a project and its dependencies, the first one found should be the projects'.

See also

Constructors

Link copied to clipboard
@Inject
constructor(objectFactory: ObjectFactory)

Properties

Link copied to clipboard
@get:Internal
open override val name: String
Link copied to clipboard
override val objectFactory: ObjectFactory

This is used for creating Gradle's lazy properties in the subclass, Shadow's build-in transformers that depend on this have been injected via ObjectFactory.newInstance. Custom transformers should implement or inject this property if they need to access it.

Link copied to clipboard
@get:Input
open val resources: SetProperty<String>

Functions

Link copied to clipboard
open override fun canTransformResource(element: FileTreeElement): Boolean
Link copied to clipboard
@Internal
open override fun getName(): String
Link copied to clipboard
open override fun hasTransformedResource(): Boolean
Link copied to clipboard
open override fun modifyOutputStream(os: ZipOutputStream, preserveFileTimestamps: Boolean)
Link copied to clipboard
open override fun transform(context: TransformerContext)