Jonah Bauer created MDEP-955: -------------------------------- Summary: unpack ignores global fileMappers Key: MDEP-955 URL: https://issues.apache.org/jira/browse/MDEP-955 Project: Maven Dependency Plugin Issue Type: Bug Components: unpack Affects Versions: 3.8.0 Environment: Windows 11, Java 21, Maven 3.8.6, Maven Dependency Plugin 3.8.0 Reporter: Jonah Bauer
I was trying to use the {{unpack}} goal to unpack multiple artifacts with a similar structure (namely webjars) and rewrite their filenames using a common file mapper. The {{unpack}} goal conveniently defines the property {{fileMappers}} which seems suited for this use case. The configuration is as follows {code:xml} <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.8.0</version> <executions> <execution> <id>unpack-libraries</id> <phase>generate-resources</phase> <goals> <goal>unpack</goal> </goals> <configuration> <artifactItems> <artifactItem> <groupId>org.webjars.npm</groupId> <artifactId>chart.js</artifactId> <version>${chartjs.version}</version> </artifactItem> <artifactItem> <groupId>org.webjars.npm</groupId> <artifactId>chartjs-adapter-date-fns</artifactId> <version>3.0.0</version> </artifactItem> </artifactItems> <includes>META-INF/resources/webjars/*/*/dist/**</includes> <outputDirectory>${project.build.directory}/generated-resources/libraries</outputDirectory> <fileMappers> <org.codehaus.plexus.components.io.filemappers.RegExpFileMapper> <pattern>^META-INF/resources/webjars/([^/]+)/[^/]+/dist/</pattern> <replacement>./$1/</replacement> </org.codehaus.plexus.components.io.filemappers.RegExpFileMapper> </fileMappers> </configuration> </execution> </executions> </plugin> {code} This, however, does not work. While the artifacts are unpacked to the target directory, the globally configured {{fileMappers}} did not seem to take any effect. After looking into the code of {{UnpackMojo}} it seems the {{UnpackMojo::getFileMappers}} method is unused. In {{UnpackMojo::getProcessedArtifactItems}} the {{includes}} and {{excludes}} of each artifact item are set to the globally configured values if empty, but the file mappers are left unchanged. -- This message was sent by Atlassian Jira (v8.20.10#820010)