SMAC - Scala MAven Cross version in a java world
summary
Problem: Scala is source-compatible but not binary-compatible, and Maven is the company build tool, so libraries must be published for multiple Scala versions. SMAC produces two Maven child modules (e.g. sparklib_2.10 and sparklib_2.11) that release same artifact version twice by swapping properties and either pointing the module’s sourceDirectory to outside the model or using symlinks; this yields two artifacts with identical version coordinates built for different Scala runtimes and works for gradual upgrades and Spark cross-building.
AI-written summary · about








