Looking for a thorough explanation of Bamboo's automatic Maven dependency management feature
Asked by Jake Robb:

I've found the documentation, here:   
<https://confluence.atlassian.com/bamboo/setting-up-plan-build-dependencies-289276887.html>  

I am hoping to understand *exactly* what criteria are used to decide when to add or remove build plan dependencies.

I have many instances of build plans where my understanding of the system indicates that there should be a dependency, but there is none listed on the Dependencies tab in the plan config, and many instances of build plans where my understanding indicates there should be no dependency, but one exists. Furthermore, sometimes a build is triggered as a result of another build as if a dependency were present, but none is.

We have dozens of shared libraries, many of which have dependencies on other libraries, and dozens of services using these libraries. All of these are built with Bamboo and Maven 3. All have the Dependency Check task configured and the checkbox checked as described in the documentation.

As noted in the subject, I'm looking for a thorough explanation. But I also have some specific questions:

1. Am I correct in assuming that the dependencies which are badged "GENERATED" and are not manually deletable are the ones created by this functionality?
2. Is the "Maven Dependencies Processor" task execution the event at which dependencies are updated? Does it produce any output in the build log such that I could see this happening?
3. Does the processor account for version numbers? (Evidence suggests it does not)
4. Does behavior differ for snapshots vs releases? (Evidence suggests it does)

If it makes a difference, we are using the locally hosted variety of Bamboo. We're currently on version 5.13.2 and are actively investigating an upgrade to 6.x.

Thanks!


Answers:
author: Steven Castelein
body: After contact with support I found out that automatic dependencies only work with the 'master plan' (branch that is selected when plan is created). In our case that's always develop.

Any subsequent branches are detected and also show up in the Plan View / Maven Dependencies, however they do not update the Plan's child plans.

We've now decided to configure the dependencies manually (project dependencies don't change so often) and accept that some transitive builds are not needed ( because the child project depends on a released version instead of version in develop ).

Please vote for this ticket <https://jira.atlassian.com/browse/BAM-18381> if you'd like to see some improvements here.


author: Steven Castelein
body: It's now 2 years later but I actually have exactly the same problem.

I have:

* configured the Maven Dependencies Post Processor
* in my Plan View I can see the Maven Dependencies tab with the dependent Maven Artifact and a clickable link to the right child Plan.
* When I configure the parent plan and go to the Dependencies tab I **don't see** the child plan listed

In some scenarios I also see the 'generated badge' but found it difficult to grasp how this was created. I couldn't trigger it manually.

Also, when I manually set the child plan everything works fine, including the build of branches with the same display name.

Can anyone help me out?


Tags: maven