Hi,

Trunk previously required a re-compiled NUnit assembly to work, which disappeared in the snapshot repository house keeping. I wanted to try again with a standard NUnit assembly, and saw that it failed to run the tests due to the filename issue. Fixing this is important, as not all assemblies can be recompiled.

I added a simple class DotnetArtifactLocator that will load the POM of the artifact and check the finalName. If it is set, it is returned instead of the previous filename. If requested, it will copy it to the $version/$finalName.dll location in the local repository (ie, one level deeper in the current directory, as Dan suggested), if it doesn't already exist, and return that location instead. This is meant to be a very simple utility that plugins can use when they need a renamed artifact, and is potentially compatible with a future local repository layout adjustment.

This resolved the issue for NUnit (as the file in target-assemblies could easily be renamed). I noted it wasn't needed for compilation at all, so I didn't include that. On the current trunk, nothing else uses artifacts.

Questions:
- any thoughts on this approach?
- is there any reason the rename would be needed for compilation?
- are there other scenarios on the current trunk where the rename is needed?

I'd like to put this matter to bed :) The work is on the branch 'NMAVEN-8-nunit'. I still have a bit more to do, but would like to merge it back into trunk after those changes tomorrow.

The repository I'm building up is at http://people.apache.org/~brett/repositories/dotnet/ for now - I still need to go back and add licenses, etc before pushing this anywhere permanent.

Thanks,
Brett

--
Brett Porter
[EMAIL PROTECTED]
http://blogs.exist.com/bporter/

Reply via email to