Introduction: What mechanism can be used to store artifacts in the repository which are sensitive to having versions in the filename? This is a concern for certain artifacts such as .NET assemblies (particularly closed source 3rd party assemblies) which contain internal meta-data which is aware of the filename along with a digital signature to ensure the assembly is not tampered with.
------------------------------ Potential Solutions: I see two general approaches to the problem: 1) Teach the DefaultArtifactResolver to somehow support alternate filename patterns for certain artifact types within a m2 repo. 2) Create/leverage a post-process hook in the DefaultArtifactResolver which can used to un-archive the relevant artifact type after resolution. This approach allows the repository format to remain unchanged, but requires a good architectural design that supports post-processing without requiring changes to existing plugins. -------------------------------- Questions: 1) Does such functionality already exist? 2) Please compare and contrast the architectural advantages/complications with each approach. Which would be best and why? 3) Is there another solution I have not thought of? 4) What classes/interfaces should I take a look at in order to affect the necessary change so as to contribute an appropriate patch back to the project?