So what's the status on this? Shall I create a ticket?

On Fri, Feb 7, 2014 at 5:04 PM, Ron Wheeler
<rwhee...@artifact-software.com>wrote:

> Exclusions will not help in this case.
> Looking through the dependency hierarchy will at least get you to see the
> problem earlier which I think was the nature of your question.
>
> It appears from my brief reading and fun with making servlets run in
> production that classloaders merge classes by name.
> Maven does not.
>
> I am a bit surprised that groupId does not count.
>
> If one uses a lot of third -party libraries, it would seem inevitable that
> you could need com.artifact-software:utilities:1.0 at the same time as
> ch.rethab:utilities:1.0 at the same time.
> The classloader is not going to cause any problem but if Maven throws out
> one of these as a duplicate, you will be missing classes at run-time.
>
> It is difficult to force everyone to create unique artifactIds unless you
> get rid of the GroupId altogther and make GAV -> <AV> and put the group
> name into the artifactID.
>
> This seems to be a design flaw if it is true.
>
> Ron
>
>
> On 07/02/2014 9:43 AM, Reto Hablützel wrote:
>
>> Sure, but exclusions don't do the trick if you need both of them, do
>> they? I am talking about completely independent libraries that happen to
>> have the same artifactId.
>>
>> Those were actually both libraries of mine and I could obviously fix this
>> issue rather simply, but I was just thinking that it would be helpful to
>> have at least a warning or something from maven - regardless of the IDE.
>>
>> - Reto
>>
>>
>> On Fri, Feb 7, 2014 at 3:33 PM, Ron Wheeler <rwheeler@artifact-software.
>> com <mailto:rwhee...@artifact-software.com>> wrote:
>>
>>     If your IDE supports Maven (Eclipse/STS for example), you will see
>>     the conflict in the dependency hierarchy view and you can fix it
>>     with the right exclusions.
>>
>>     It is almost always worth a quick look through the dependency
>>     hierarchy view if you use a lot of third party libraries.
>>     Not everyone updates their dependencies when they build a
>>     shareable library.
>>     You can sometimes get some pretty old versions of things dragged
>>     in with the latest version of otherwise well-written libraries.
>>     Exclusions need to be added to get what you want in your artifacts.
>>
>>     Ron
>>
>>
>>     On 07/02/2014 9:21 AM, Reto Hablützel wrote:
>>
>>         Hi there,
>>
>>         I built an ear using the maven-ear-plugin (version 2.6).
>>
>>         The ear is configured such that it includes two libraries into
>>         the lib
>>         folder, both with the same artifactId as well as the same
>>         version, but a
>>         different groupId. Now if I simply call 'mvn package' only the
>>         first one is
>>         included, but no warning whatsoever appears. Only once I turn
>>         on debugging
>>         (mvn --debug package), I see one subtle message:
>>         [DEBUG] Skipping artifact [jar:com.foo:bar:1.0] as it is
>>         already up to date
>>         at [lib/bar-1.0.jar]
>>
>>         Wouldn't it make sense to either include the groupId in the
>>         filename or at
>>         least make a check (that includes the groupId) beforehand if
>>         there are any
>>         conflicts?
>>
>>         Cheers,
>>         Reto
>>
>>
>>
>>     --     Ron Wheeler
>>     President
>>     Artifact Software Inc
>>     email: rwhee...@artifact-software.com
>>     <mailto:rwhee...@artifact-software.com>
>>
>>     skype: ronaldmwheeler
>>     phone: 866-970-2435, ext 102
>>
>>
>>     ---------------------------------------------------------------------
>>     To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>     <mailto:users-unsubscr...@maven.apache.org>
>>
>>     For additional commands, e-mail: users-h...@maven.apache.org
>>     <mailto:users-h...@maven.apache.org>
>>
>>
>>
>
> --
> Ron Wheeler
> President
> Artifact Software Inc
> email: rwhee...@artifact-software.com
> skype: ronaldmwheeler
> phone: 866-970-2435, ext 102
>
>

Reply via email to