TLDR: You can run
./gradlew clean installer to build without running the unit tests and that should be a good stop gap
Concourse memory maps files for greater efficiency and it seems that Windows handles that very differently that linux/OS X. The error you're seeing occurs when the unit test tries to delete the temporary directory it was using to store data. But, since the files in that directory are memory mapped and the process that started the memory mapping (the JUnit process) is still going, the Windows filesystem complains.
The possible solutions for this problem are to:
1. Create temporary directories/files in a different location (e.g. the canonical OS temp dir) and let the OS handle cleaning up the files later on. This is the easiest solution.
2. Add logic to "unmap" the memory mapped files when the unit tests are done with them (e.g. the unit test stop the storage engine so we can add logic in the storage engine stop methods to unmap the files it was using). This is a more comprehensive and correct approach, but unmapping isn't actually supported by the JVM so we'd have to use a hack to accomplish this.
I'm still mulling over which approach is best. I'm open to suggestions about which way to go. In the meantime, the best thing to do is just perform a build without running the unit tests on Windows machines. You can do that by doing the following:
./gradlew clean installer