[ 
https://issues.apache.org/jira/browse/ARTEMIS-1230?focusedWorklogId=226125&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-226125
 ]

ASF GitHub Bot logged work on ARTEMIS-1230:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 11/Apr/19 16:21
            Start Date: 11/Apr/19 16:21
    Worklog Time Spent: 10m 
      Work Description: jmax01 commented on issue #2615: ARTEMIS-1230 Added 
artemis-bom
URL: https://github.com/apache/activemq-artemis/pull/2615#issuecomment-482184497
 
 
   @clebertsuconic 
   Boms minimize (or eliminate altogether) the risk of having mismatched 
versions of a project's artifacts. 
   They also allow the sharing of versions without relying on the _Maven_ pom 
hierarchy.
   
   We are using _Artemis_ embedded with _Spring Boot_. _Spring Boot_ declares 
10 _Artemis_ dependencies in its 
[bom](https://github.com/spring-projects/spring-boot/blob/v2.0.9.RELEASE/spring-boot-project/spring-boot-dependencies/pom.xml),
 we require two additional dependencies.  If we wish to vary our version of 
_Artemis_ from the _Spring Boot_ version (which we [do 
](https://issues.apache.org/jira/browse/ARTEMIS-2206?jql=project%20%3D%20ARTEMIS%20AND%20fixVersion%20%3D%202.7.0%20AND%20summary%20~%20%22mqtt%22%20ORDER%20BY%20priority%20DESC%2C%20updated%20DESC))
 we then have to duplicate all the _Spring_ declared dependencies or else we 
risk having inconsistent versions of _Artemis_ libraries in our classpath.  
   
   Further we have non-_Spring Boot_ libraries that use _Artemis_ so again we 
have to explicitly declare each dependency we reference. 
   
   It should be noted that _Spring Boot's_ bom contains 408 
_non-spring-framework_ dependencies and _Activemq_ (both projects) make up over 
9% of the total entries.
   
   For the record though I am not a fan of how _Spring Boot_ handles their 
dependencies and would not recommend it for _Artemis_.  _Spring Boot_ mixes 
Spring and non-Spring dependencies together.  In my experience boms for large 
projects should be decomposed in the following manner: 
   
   - _External Project Bom_:  The members of the project that will be published 
externally.  This is the _artemis-bom_  created in this pull request
   - _External Third Party Bom_:  The third party dependencies that are used by 
the items declared in the _External Project Bom_
   - _Composite External Bom_:  The composite of the other _External Boms_
   - _Internal Project Bom (Optional)_:  The members of the project that will 
not be published externally. This would contain the _org.apache.activemq.tests_ 
modules 
   - _Internal Third Party Bom (Optional)_:  The third party dependencies that 
are used by the items declared in the _Internal Project Bom_. This would 
contain any third party dependencies reference by _org.apache.activemq.tests_ 
modules.
   - _Composite Internal Bom  (Optional)_:  The composite of all the other bom 
projects. This is really only needed when projects cannot share a _parent_. If 
modules share the same parent then the boms can be added to the parent's 
`dependencyManagement` section.
   
   Finally providing a bom (or boms) has become pretty standard for larger 
projects (spring, jackson, netty, jetty, log4j2, junit, infinispan, jersey, 
wildfly, etc)
   
   > Was there a particular reason other than make it more organized?
   > 
   > I mean: was there a particular error that you faced that lead you to do 
this?
   
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 226125)
    Time Spent: 20m  (was: 10m)

> Create Maven Bill of Materials (BOM)
> ------------------------------------
>
>                 Key: ARTEMIS-1230
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1230
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>            Reporter: Daniel Siviter
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> It's frustrating having to deal with dependency versions so the creation of a 
> Bill of Materials will assist with this.
> I'm currently battling with Wildfly Swarm 2017.6.0 overriding to 
> v1.1.0.wildfly017. To override the version of Artemis I have to have an entry 
> in my POM for every single dependency which is arduous.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to