Still can't quite believe that the reactor can't handle test artifacts
Yeah, I'm not sure why this is. I would think that as long as you invoke something that hits the test maven lifecycle phase, you'd have access (which means compile would still not work), but that doesn't seem to be the case either. :shrug:
When moving "common test infrastructure" to a new module, is there clearly a right place to cut? If cti depends on core and core-test depends on cti, isn't that a cyclic dependency?
Yes, this is the pain in doing it. The easiest thing I found was to just move the tests from calcite-core wholesale to a calcite-test module. I had started trying to just pick the ones that were absolutely necessary to move (because other downstream modules had dependencies on them), but that was a futile effort.
I imagine it would be easy to move the limited tests back to calcite-core after I get all of the tests running (a few are throwing exceptions).
Another option would be to put the test classes into calcite-core/src/main/java and configure surefire to look in src/main/java instead. This would have the negative impact of bloating the size of the jar though.