考慮使用特定的版本化jar來實現方法的常見情況,但不公開或公開或保護API中的該jar中的任何類型(僅在私有方法的方法簽名中)。在SBT中,是否可以自動命名爲mangle私有包?
現在我想要的是通過名稱自動編譯時鏈接此代碼 - 將原始包名替換爲原始包名並將其替換爲SBT中生成的代碼(再次:我想將插件添加到SBT或設置中build.sbt在每個sbt compile
上執行此操作)。
這樣做的目標是避免具有相同包/類名的多個類可能不兼容的版本的類路徑錯誤。注意:在上面描述的情況下,內聯或者這個名稱應該總是有效,並且允許一個側面版本的地獄(以較大的瓶子爲代價)。
聽起來像它可能是[Scala宏]的用例(http://scalamacros.org/)? – logan
這是OSGi常用的東西。 OSGi使用類加載器的巧妙技巧來代替名稱修飾,但它達到了相同的效果。 –
我不知道有什麼辦法可以做到maven-shade-plugin的類重定位:http://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html – mpilquist