This article suggests that Bamboo global and build specific variables can be referred to in build scripts or maven.
https://confluence.atlassian.com/bamboo/passing-bamboo-variables-to-a-build-script-289277351.html
While the example works, it appears that if I define my own bamboo variable either globally or at the plan level, they are not replaced.
I suspect that "built in" variables are substituted, but user defined global or plan variables are not.
If in my maven task, I set the goal to
clean test -Dvms.database.user=${vms.db.user} -Dvms.database.password=${bamboo.buildNumber}
Then I can clearly see that the built in bamboo.buildNumber is replaced, where as my global variable vms.db.user is not (as shown below).
clean test -Dvms.database.user=${vms.db.user} -Dvms.database.password=1