srcdeps.masterConfig
- build direct and transitive dependencies with a single srcdeps.yaml
fileBefore srcdeps-maven
3.4.0 and srcdeps.yaml
model version 2.4, building of dependencies from source "on the
fly" worked only for direct dependencies. If my-project
depended on dependency-1
, I could declare dependency-1
as a source dependency in srcdeps.yaml
of my-project
. But if I also wanted a specific unreleased commit of
dependency-2
, which dependency-1
depends on (and needs to be built and run against), I had no other option than
fork dependency-1
and add srcdeps.yaml
with dependency-2
there.
The new srcdeps.masterConfig
feature allows you to avoid the intermediary srcdeps.yaml
files. Now you can declare
dependency-2
in the srcdeps.yaml
file of my-project
and you do not need to fork dependency-1
.
srcdeps.yaml
configuration model version 2.4 introduces a new boolean attribute forwardAsMasterConfig
. If it
is true
, the URI of the current srcdeps.yaml
file will be forwarded as a system property srcdeps.masterConfig
to
every dependency builder. The dependency builder picks srcdeps.yaml
from the URI, uses it during its own build and
forwards it to every dependency build it triggers itself.
With forwardAsMasterConfig: true
the dependency also does not need to have srcdeps-maven-local-repository
declared
in its .mvn/extensions.xml
. After checking out the sources of the dependency, srcdeps-maven
auto-creates (or
upgrades) the .mvn/extensions.xml
file as necessary.
forwardAsMasterConfig
attribute is optional and the default value is false
.