Re:Recursive Make Considered Harmful (1997) [pdf]
by pabl0rg on Sunday May 26, 2019 @11:11AM
(#20015291)
Kobalt build tool uses a Kotlin DSL (typed language) and lets you establish dependencies between files in a straightforward way. It currently only supports java and kotlin jvm projects but it meets your criteria.
https://beust.com/kobalt/home/index.html