As far as I know, ServiceMix doesn't have an easy way to have it build it's own local repository.
From my experience, setting the repository as you did will not download the files to the path. The files are added directly to the bundles under the data directory.
What I did to get past this was to create a pom file that contains nothing other than dependencies and ran mvn package -Dmaven.repo.local=~/root/.m2/repository which populated the repository. From there, I modified the org.ops4j.pax.url.mvn.cfg file and set the org.ops4j.pax.url.mvn.localRepository property to /root/.m2/repository (without the file: prefix).
ServiceMix still won't download new features to your repository, but this will allow ServiceMix to pull artifact from the local repository so it doesn't need to hit artifactory server.
I hope this helps.