2012-09-01 14 views

risposta

27

Play utilizza sbt-native-packager, che sostiene l'inclusione di file arbitrari aggiungendoli ai mapping:

mappings in Universal ++= 
    (baseDirectory.value/"scripts" * "*" get) map 
    (x => x -> ("scripts/" + x.getName)) 

La sintassi assume gioco 2.2.x.

+1

Finalmente :) Questa domanda è stata a lungo persa. – Rajish

+1

@Roland puoi pubblicare il codice per copiare sottodirectory annidate e il suo contenuto. –

+1

Vedere http://www.scala-sbt.org/0.13.7/docs/Detailed-Topics/Mapping-Files.html: '(baseDirectory.value /" scripts "***). Ottenere coppia relativaTo (baseDirectory. valore) ' –

2

Osservando lo distsource code, penso che non sia possibile.

Ma è possibile utilizzare il comando play clean compile stage per confezionare l'applicazione e le sue dipendenze (da doc):

Questo pulisce e compila l'applicazione, recupera le richieste dipendenze e li copia al target/messa in scena directory . Inoltre, crea uno script di destinazione/avvio che esegue il server di riproduzione.

Quindi dovrai scrivere il tuo script per aggiungere le tue directory e creare un file zip.

0

Posso scommettere che non ti soddisferò, ma forse non perderai il tuo tempo per la ricerca. Come , Nico indica che non esiste una tale possibilità, l'approccio più veloce che puoi usare è scrivere uno script bash (o un file * .bat) per farlo.

Ho trascorso un'ora a cercare la soluzione ... e 15 minuti per scrivere script che decomprime, modifica, fa zip e invia un file alla destinazione remota, quindi considera se non sarà l'opzione migliore anche per te.

5

La mia applicazione Play non è stato compreso file di modello (in app/views /) nel distribuibile, e li ho aggiunti con questo in Build.scala:

val main = play.Project(appName, appVersion, appDependencies).settings(
    // Add your own project settings here 
    playAssetsDirectories <+= baseDirectory/"app/views" 
) 
1

Non sicuro da quale versione di riproduzione sia supportata, ma Play! 2.5 documentation suggerisce che è possibile aggiungere qualsiasi file arbitrario da includere in una cartella "dist" (nella radice del progetto). Sto usando SBT nativo packager per costruire il mio progetto in un RPM e questo lavoro è perfettamente pronto all'uso.

+0

Appena testato questo e sembra funzionare. Anche se l'editor Atom sembra non gradire (come nelle pelli) una cartella radice chiamata Dist così incerta se questo è in conflitto con qualcos'altro (nel mio ambiente ...) (Aggiornamento: Il mio male - era solo una cartella in .gitignore per qualche ragione) – Techmag

Problemi correlati