Multiproject builds, but NO subprojects (ie. nested projects)

Every tutorial that I’ve seen on multi-project builds assumes a hierarchical code base structure:
/rootProject
|- /subProjLib
|- /subProjClient1
|- /subProjClient2

I cannot rejigger the source repo to match this. I have 2 top-level projects with lots of code copy/pasted between them that I desperately want to factor out into a new library project that both projects can reference.

But I cannot figure out how to do this short of stuffing the 2 existing projects into the library project, which is just a deal breaker for me.

Is there way to reference another project that lives at the same level as current one?

Here’s my workspace:
/myClient1
/myClient2
/myLib (the new one I want to create)

I’ve tried this in myClient1:
dependencies {
compile project(’:myLib’)
}

But it fails to find “myLib” in the same directory, which makes sense so far, but:
compile project(’:…/myLib’)

I was hoping it just walk up (…/) from the currect directory and find myLib project, but it failed.

At the end of the day, I need myLib.jar visible to myClient1 and myClient2 during compilation and also materialized in those projects buildspace (to be RPM’d).

Can anyone please help me with this?

Search for “flat project layout” and “composite builds”. Here is something to get you started:

https://docs.gradle.org/current/userguide/build_lifecycle.html#N11A1D
https://docs.gradle.org/current/userguide/build_lifecycle.html#sec:initialization

Also a quick search found: