Hi,

javadevd...@googlemail.com wrote at Freitag, 4. September 2009 09:38:

> Hi all!
> 
> My problem is not easy to describe :-) But i try it...
> I have add a picture to this mail, where the situation is painted..
> 
> The Situation:
> 
> There are two versions of my project.
> - Version 3: This version is in production and has been frozen. (the
> repository for V3 is offline, that no changes from dependencies can make
> trouble...)
> - Version 4: This is the actual developed Version. It usees another remote
> Repository because some dependencies changed.
> 
> Using eclipse M2 plugin for developing.
> 
> The Problem:
> 
> All dependencies (from V3 and V4) are at the same time in the local
> repository. And there is one special dependency (can also be transitive)
> with no fixed version. (red circle in painting)
> In V4 there was created a new Version for that dependency (from a third
> party! But i didn't recocnize, because maven fetch it automaticly!!)
> Now, there is also a new Version of that dependeny in the local
> repository.
> 
> Suddenly there should be a bug fixing in V3! (So the frozen version should
> be used to change something...)
> But, the changed dependency, described above, is in the local repository
> and is also be used from V3, what is wrong, because the frozen state used
> another version!
> (Another version can have some differences, where the build doesn't break,
> but some different behaoviours can be in the software... so there are
> unpredictable bugs!)
> 
> Some possible solutions, and why they aren't real solutions:
> 
> 1) clean the local repository before bug fixing V3:
> To fetch all dependencies from remote Repository V3 needs some time. And
> the developer must be able to switch beetween V3 and V4 very fast. To
> clean and "reload" the local repository is to time-intensive, and if some
> changes are made in V4, and after that again in V3, the clean should be
> made again and again....
> 2) change dependencies version-range to one version only:
> I have to look for all dependencies, transitive dependencies etc. where
> some version ranges can be defined. This is to much to look for!
> 
> So... If anythink is not described properly, please ask :-)

Maybe you should reconsider your complete approach and start using Maven for
the version management instead of managing the versions by exchanging
repositories on your own. In this case Maven cannot help you and you
already face the problem. See, we use M2 now since years and we're now -
compared to your numbering scheme - at V10. However, I don't have to clear
my local repo to switch between different code lines.

Basically start using a parent POM that is global for your project i.e.
every POM of your project will inherit either directly or indirectly from
that one. Use in this global POM a dependencyMgmt section and define there
all your deps with fix versions. That's it. This global POM will define
that for your complete project all the used versions everytime. There's no
possibility anymore to get suddenly something else and this is completely
independent from the stuff in your local repo.

> I hope there is any solution for that problem...

The location of the local repo is defined in the settings.xml. You can use a
separate settings.xml, its name and location can be defined from the
command line.

> Thanks if you are a this point! :-)

No, I won't get there, because we take a different approach. You should
really reconsider yours.

- Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to