scoverage currently hard-codes the coverage datadir path into the generated bytecode, and this path must match the directory where the coverage metadata (scoverage.coverage) is written. This makes it impossible to separate the compilation output from the coverage data. It would be very useful to allow the measurement data directory to be configured—e.g., via a runtime system property, a compiler option, or another explicit setting.
Motivation: scoverage/gradle-scoverage#202
In Gradle, task outputs can be cached. If a task is rerun with the same inputs, Gradle can restore its outputs from the cache. With scoverage, this is difficult because both the compilation task and the test task write into the same directory.
The linked pull request implements a substantial workaround to deal with this limitation. Providing configuration support directly in scoverage would enable a much cleaner and simpler solution.