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?

Reply via email to