When does macro expansion happen

I am trying to use the command line with a .bndrun file.
java -jar biz.aQute.bnd-6.1.0.jar repo -p config.bndrun get org.eclipse.osgi

inside my config.bndrun I have
-plugin.repo.Common: ${common.repo}
where the ${common.repo} is defined in an include file. When I go to run (with some debug) I see
[main] DEBUG aQute.bnd.osgi.PluginsContainer - Trying pre-plugin ${common.repo}
and with some remote debugging I can see the properties are loaded but the macro’s are not expanded.

However on the same file if I run
java -jar biz.aQute.bnd-6.1.0.jar resolve resolve -q -u -p config.bndrun
This works fine , resolves the macro’s , creates the plugins for the repositories and resolves.


I think you need to use -w for the repo command. See bnd help repo. In this case, the standalone bndrun works as a workspace. Not sure why the resolve uses -p, might be a bug. With -p, which indicates a project, you would still need a workspace.

When you use the -w flag it does not copy the properties into the workspace so you get
000: No translation found for macro: build.repo
With -p the properties are in the workspace but not expanded

Do you have -standalone in your bndrun?

No I do not have -standalone` in my bndrun

And you did not try it?

Just did. It seemed to fix the issue.

Ok, maybe you should file an issue. We probably should document and verify this better.