On Wed, Jan 21, 2015 at 10:29 AM, Sagara Gunathunga <[email protected]> wrote:

>
>
> On Wed, Jan 21, 2015 at 10:07 AM, Prabath Abeysekera <[email protected]>
> wrote:
>
>> This is one of the things that I too am trying to figure out. Maybe this
>> is a best practice, but is it really the right move to dump all the
>> dependencies that your sub-modules use, into the parent pom, without
>> focussing on whether they all are being used by each and every one of those
>> sub-modules?
>>
>> For example, in Manoj's use-case, there's a couple of dependencies only
>> used by the "mobile services" sub-module. There, I personally don't see any
>> reason why we need to keep them all configured in the dependencyManagement
>> section of the top-most parent pom of MDM repository. Further, if at some
>> point, you would want to remove the mobile service module and introduce
>> something different, there, the removal of the said module would leave the
>> parent pom with some stale dependencies which aren't used by any other
>> child module. Is this acceptable?
>>
>> Maybe, this is a minor problem and I'm over-analyzing the whole thing.
>> Just wanted to double check whether what Malaka mentioned is the proper way
>> of handling this.
>>
>
>  This idea is not accurate, this is why Maven has introduced two concepts
> as <dependencyManagement> and <dependencies>.
>
> - <dependencyManagement> allows to consolidate and centralize the
> management of dependency versions without adding dependencies which
> are inherited by all children [1].
>
> - <dependencies>  declare the actual usage of a dependency and if the
> dependency is managed in a parent pom you can do so without using a version
> and it will be inherited and therefore be consisted across you usages
> downstream of the the parent pom.
>
> Basically, dependency management is PM task and we need a centralized
> place, we use parent POM for that. With the size of our code base it would
> be great if we can assume all dependency versions have defined in parent
> POM of the repository. Sometimes back we have very bad experiences where
> sub modules use incompatible dependencies and can't detect them until we
> start products packs or manual detection require great amount of time to
> investigate each and every POM file of the code repo.  Declaring all
> dependency versions in a centralized place greatly improve maintainability
> and readability.
>

Thanks Sagara for the response. Will stick to the above approach.

Cheers,
Prabath


>
>
> [1] -  http://stackoverflow.com/a/2619732/875165
>
> Thanks !
>
>>
>> Cheers,
>> Prabath
>>
>> On Wed, Jan 21, 2015 at 5:37 AM, Malaka Silva <[email protected]> wrote:
>>
>>> IMO best it to have it in the parent since it's easy to change.
>>>
>>> We are doing the same for ESB components.
>>>
>>> On Wed, Jan 21, 2015 at 2:37 AM, Manoj Gunawardena <[email protected]>
>>> wrote:
>>>
>>>> Hi,
>>>> According to MAVEN  best practices, dependency management (versions)
>>>> should maintain in the parent POM.
>>>> In the CDM, we have following module structure.
>>>> CDM
>>>>    -  core
>>>>    -common
>>>>
>>>> MDM
>>>>     - mobileservices
>>>>                 -Agent
>>>>                      - android
>>>>                       -windows
>>>>                        -ios
>>>> Best way of manage agent level dependencies in MDM pom (parent pom) or
>>>> mobileservices POM?
>>>> Please share your thoughts,
>>>>
>>>> --
>>>> Manoj Gunawardena
>>>> Tech Lead
>>>> WSO2, Inc.: http://wso2.com
>>>> lean.enterprise.middleware
>>>> Mobile : +94 77 2291643
>>>>
>>>> _______________________________________________
>>>> Dev mailing list
>>>> [email protected]
>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>
>>>>
>>>
>>>
>>> --
>>>
>>> Best Regards,
>>>
>>> Malaka Silva
>>> Senior Tech Lead
>>> M: +94 777 219 791
>>> Tel : 94 11 214 5345
>>> Fax :94 11 2145300
>>> Skype : malaka.sampath.silva
>>> LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
>>> Blog : http://mrmalakasilva.blogspot.com/
>>>
>>> WSO2, Inc.
>>> lean . enterprise . middleware
>>> http://www.wso2.com/
>>> http://www.wso2.com/about/team/malaka-silva/
>>> <http://wso2.com/about/team/malaka-silva/>
>>>
>>> Save a tree -Conserve nature & Save the world for your future. Print
>>> this email only if it is absolutely necessary.
>>>
>>> _______________________________________________
>>> Dev mailing list
>>> [email protected]
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>> Prabath Abeysekara
>> Associate Technical Lead, Data TG.
>> WSO2 Inc.
>> Email: [email protected]
>> Mobile: +94774171471
>>
>> _______________________________________________
>> Dev mailing list
>> [email protected]
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Sagara Gunathunga
>
> Senior Technical Lead; WSO2, Inc.;  http://wso2.com
> V.P Apache Web Services;    http://ws.apache.org/
> Linkedin; http://www.linkedin.com/in/ssagara
> Blog ;  http://ssagara.blogspot.com
>
>


-- 
Prabath Abeysekara
Associate Technical Lead, Data TG.
WSO2 Inc.
Email: [email protected]
Mobile: +94774171471
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to