Whether or not it is what I *was* looking at, it certainly seems apropos :-)

On Sun, Apr 29, 2012 at 10:50 PM, Wayne Fay <wayne...@gmail.com> wrote:
> Hmmmm... are you talking about PomStrap? ;-)
>
> http://pomstrap.jfluid.com/   [site is down for me right now]
> http://www.pomstrap.techlab.smk.fr/en/
> http://pomstrap.tigris.org/
>
> PomStrap is a hierarchical Class-Loader based on the Maven's artifact
> repository model. In a nutshell, it provides a runtime feature to
> Maven.
>
> Wayne
>
> On 4/29/12, Benson Margulies <bimargul...@gmail.com> wrote:
>> I can't track down the thing I was referring to. It has a cute project
>> name and was embedded maven as a way to manage classpath containers
>> and plugin downloads at runtime. I also looked a bit at SISU to see if
>> it was applicable to your problem, but the eclipse site is not
>> revealing at this time.
>>
>> On Sat, Apr 28, 2012 at 3:58 PM, Matt Narrell <matt.narr...@gmail.com>
>> wrote:
>>> You can also use the maven-enforcer-plugin to identify dependencies
>>> that attempt to bring in older versions of transitive dependencies.
>>>
>>> On Apr 28, 2012, at 10:55 AM, Ron Wheeler
>>> <rwhee...@artifact-software.com> wrote:
>>>
>>>> It is not that hard.
>>>> You just paste the same exclusion into each POM that includes something
>>>> that brings in a version that you do not want.
>>>>
>>>> To reduce the effort, make your POMs that produce artifacts that you
>>>> deploy depend on your own POMs that only serve to bring in third party
>>>> tools.
>>>> In that way the developer does not have to do any exclusions since your
>>>> library POMs have already setup the third party dependencies correctly.
>>>>
>>>> mywar.pom depends on myapache.pom and myspring.pom and myjasper.pom.
>>>> myapache.pom and myspring.pom and myjasper.pom are sanitized to get rid
>>>> of  transitive dependencies that I will provide at run-time.
>>>>
>>>> Makes the job very simple
>>>> Once you do it once the developers have a much simpler life.
>>>>
>>>> Ron
>>>>
>>>> On 27/04/2012 5:47 PM, J.V. wrote:
>>>>> If I have a log4j exclusion in every <dependency> section, that would
>>>>> look quite messy.  Is there a way to globally do this?
>>>>> We have dozens of dependencies, just looks like there would be an easier
>>>>> way.  Nearly everything depends on log4j so that is a lot of work to add
>>>>> to every dependency.  Not sure there is an easier way though.
>>>>>
>>>>> J.V.
>>>>>
>>>>> On 4/27/2012 1:44 PM, Ron Wheeler wrote:
>>>>>> You can either be god-like or trust that Tomcat will be.
>>>>>> You only need to do it once.
>>>>>> It takes a bit of time but, at the end, you know what you are running
>>>>>> in production and developers don't have to worry about getting a
>>>>>> MethodNotFound at run-time.
>>>>>>
>>>>>> It is not as bad as you think if you have a good IDE with Maven
>>>>>> support. We use Eclipse STS from Springframework.
>>>>>>
>>>>>> It will look through your project POM and tell you where all your
>>>>>> dependencies are coming from.
>>>>>>
>>>>>> You can then write excludes on your dependencies to stop them from
>>>>>> bringing in transitive dependencies that you do not want.
>>>>>>
>>>>>> We made our own poms to bring in all the Apache stuff (commons-xxx,
>>>>>> log4j, etc.) so we had a single dependency that developers could use in
>>>>>> their projects to get the "right" version of all the "right" Apache
>>>>>> libraries. They never had to worry about them again and if we wanted to
>>>>>> upgrade log4j, we just did it in one place.
>>>>>> For third party libraries that had transitive dependencies on something
>>>>>> like log4j, we just added an exclude to their dependency
>>>>>> specification.
>>>>>>
>>>>>> We had a small team with a lot of modules so it really made everyone's
>>>>>> life easier and I did not have to worry that someone would inject an
>>>>>> old version into the system.
>>>>>>
>>>>>> Ron
>>>>>>
>>>>>>
>>>>>> On 27/04/2012 3:27 PM, J.V. wrote:
>>>>>>>
>>>>>>>
>>>>>>> On 4/27/2012 10:04 AM, Ron Wheeler wrote:
>>>>>>>> On 27/04/2012 11:40 AM, J.V. wrote:
>>>>>>>>> I understand how Maven resolves dependencies (and transitive
>>>>>>>>> dependencies) at compile time, but does it bring anything to the
>>>>>>>>> table at run time?
>>>>>>>> It makes your artifacts that your run-time environment will execute.
>>>>>>>> It is a build tool.
>>>>>>>>>
>>>>>>>>> For example, if I have in my application dependency list two
>>>>>>>>> versions of log4J (let's say version 8 and version 15), will I
>>>>>>>>> deploy both jars/version along with my app on say a tomcat server
>>>>>>>>> inside the war?
>>>>>>>> Fix it so you only have 1.
>>>>>>>> Settle on the "right" versions of third party libraries and use
>>>>>>>> "exclusions" in your dependencies to prevent other libraries from
>>>>>>>> grabbing older versions.
>>>>>>>    => this is a very tedious task.  I have to be godlike to know the
>>>>>>> transitive dependencies and what libraries they use, and inspect my
>>>>>>> local repository, find out all dups of everything, find out which top
>>>>>>> level dependency needs it and go exclude this.  This is a maintenance
>>>>>>> nightmare.
>>>>>>>> Most software is upwards compatible so you will very seldom have any
>>>>>>>> trouble.
>>>>>>>> For log4j, you want to specify the latest version.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> At runtime which one does it choose?  If I am executing the code
>>>>>>>>> that depends on version 8, how would the correct jar be in the
>>>>>>>>> classpath at that point and later log4J version 15 be in my
>>>>>>>>> classpath when code that has that dependency executes?
>>>>>>>>>
>>>>>>>> The runtime behaviour depends on the environment (Tomcat).
>>>>>>>> If you have 2 possible versions available, it will pick one based on
>>>>>>>> how the programmers who wrote the environment thought that the world
>>>>>>>> should work and in Tomcats case, what order the webapps started when
>>>>>>>> the server came up which is not in your control.
>>>>>>>>
>>>>>>>> This can lead to MethodNotFound exceptions at runtime where someone
>>>>>>>> calls a method that is available in Version 15 but your environment
>>>>>>>> picked 8 to load.
>>>>>>>> Don't give it the choice.
>>>>>>>>
>>>>>>>>
>>>>>>>>> At runtime, Maven is out of the picture correct?  This is a missing
>>>>>>>>> piece for me.
>>>>>>>>>
>>>>>>>> Yes. It just builds the wars, jars, etc. as per your specifications.
>>>>>>>>
>>>>>>>>> thanks
>>>>>>>>>
>>>>>>>>> J.V.
>>>>
>>>> --
>>>> Ron Wheeler
>>>> President
>>>> Artifact Software Inc
>>>> email: rwhee...@artifact-software.com
>>>> skype: ronaldmwheeler
>>>> phone: 866-970-2435, ext 102
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>> For additional commands, e-mail: users-h...@maven.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>

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

Reply via email to