Należy wziąć pod uwagę powszechny przypadek użycia określonego słoja z wersjami do implementacji metody, ale nie ujawniając żadnych typów z tego słoika w publicznym lub chronionym interfejsie API (tylko w metodach podpisów metod prywatnych).Czy w SBT można automatycznie zmapować pakiety nazw?
Teraz to, czego chcę, to automatyczne łączenie w czasie kompilacji tego kodu poprzez wymodelowanie nazwy oryginalnej nazwy pakietu i zastąpienie go w wygenerowanym kodzie w SBT (ponownie: chcę dodać wtyczkę do SBT lub ustawienie w plik build.sbt, który robi to na każdym sbt compile
).
Celem tego jest uniknięcie błędów klasy klasu w wielu możliwych niezgodnych wersjach klas o tej samej nazwie pakietu/klasy. Uwaga: w sytuacji, którą opisuję powyżej, wstawianie lub wymazywanie nazw powinno zawsze działać i pozwalać na przejście do wersji piekło (kosztem większych słoików).
Wygląda na to, że może to być przypadek użycia [Scala Macros] (http://scalamacros.org/)? – logan
To jest to, do czego zwykle służy OSGi. OSGi używa sprytnych sztuczek z ładowaniem klasy zamiast wymazywania nazw, ale osiąga ten sam efekt. –
Nie wiem, w jaki sposób można wykonać równoważnik sbt przeniesienia klasy z wtyczki maven-shade: http://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html – mpilquist