La descrizione della strategia di unione sbt-assembly denominata rinomina ha suonato come se potesse consentire qualcosa di simile all'operazione di ombreggiatura dello maven-shade-plugin che riposizionerà le classi ei relativi riferimenti per consentire la gestione di versioni incompatibili di librerie.Nel caso in cui l'assemblaggio di sbt esegua un riposizionamento di classi simile a "maven-shade-plugin"?
Sarebbe opportuno che sbt-assembly eseguisse tale funzione?
Ho usato la seguente strategia di unione per tentare di utilizzare il rename come meccanismo di riposizionamento ma mentre esso corrisponde a tutti i file, li passa direttamente (che è coerente con l'analisi del codice).
assemblyMergeStrategy in assembly := { s =>
s match {
case PathList("com", "clearspring", "analytics", _*) => {
println("match_cs: " + s)
MergeStrategy.rename
}
case x => {
println("x: " + x)
val oldStrategy = (assemblyMergeStrategy in assembly).value
oldStrategy(x)
}
}
}
vedo parte di questa risposta [qui] (http://stackoverflow.com/questions/24596914/sbt-assembly-rename-class-with-merge-conflicts-shade) che sbt- l'assemblea non oscura. Quale lascia la parte "sarebbe appropriato"? – Traveler
Questo ha mai funzionato ?? Sono nella stessa situazione ... – acidghost
@acidghost: No, per mio collegamento, sbt-assembly non eseguirà questa trasformazione. Devi solo scimmiottare con gli sbt esclusi e sono molto dipendenti dall'attuale serie di giare dipendenti. – Traveler