6

Sto cercando di usare "$ {BUILD_LOG, maxLines, escapeHTML}", come potrebbe descriverli in: How can I take last 20 lines from the $BUILD_LOG variable?

Purtroppo non funziona per me.

ottengo questo errore:

Script1.groovy: 114: expecting anything but ''\n''; got it anyway @ line 114, column 301. arted by user MYUSERNAME

Il mio codice in questa linea è:

  msg.setText("This build (" + build.getFullDisplayName() 
      + ") contains the following tasks:\n\nTASK\t\t\t IMPLEMENTER:\n" 
      + taskList + "\n\n\nLink to this 
      build: ${BUILD_URL} \n ${BUILD_LOG, maxLines=9999, escapeHtml=false}"); 

Se prendo questo fuori quanto segue, funziona. Ecco perché la mia ipotesi è, che "BUILD_LOG" non funziona più?

${BUILD_LOG, maxLines=9999, escapeHtml=false}


EDIT: Forse come aggiunta: sto cercando di fare questo withing lo script Groovy Presend. Poiché sto creando il testo dell'email in modo dinamico. ${BUILD_URL} funziona bene, ${BUILD_LOG, maxLines=9999, escapeHtml=false} non fa (per me) sto cercando una soluzione per questo ... l'oggetto msg è un java MimeMessage.

Grazie, Daniel

risposta

0

ho usato il seguito e che sta funzionando bene per me.

${BUILD_LOG, maxLines=10, escapeHtml=false} 

ho provato con la versione Jenkins 1.617

+0

Questo esattamente quello che ho scritto ...?! e non funziona per me con: Jenkins ver. 1.609.2 (LTS) vedi l'esempio sopra ... Ho provato anche con meno e senza maxLines ... nessun cambiamento – Beasly

1

Questo messaggio di errore è di solito legato con quotazioni non chiuso, i commenti iniziato con / invece di //, ecc Nel codice l'unica cosa che posso vedere è che la vostra terza linea non è finito correttamente, vale a dire, dopo "\n\n\nLink to this non si chiusura delle virgolette doppie e invece si stanno iniziando una nuova linea (così il expecting anything but ''\n''

tenta di scrivere tutta la linea:.

msg.setText("This build (" + build.getFullDisplayName() 
      + ") contains the following tasks:\n\nTASK\t\t\t IMPLEMENTER:\n" 
      + taskList + "\n\n\nLink to this build: ${BUILD_URL} \n ${BUILD_LOG, maxLines=9999, escapeHtml=false}"); 

o chiudere le virgolette invece:

msg.setText("This build (" + build.getFullDisplayName() 
      + ") contains the following tasks:\n\nTASK\t\t\t IMPLEMENTER:\n" 
      + taskList + "\n\n\nLink to this " 
      + "build: ${BUILD_URL} \n ${BUILD_LOG, maxLines=9999, escapeHtml=false}"); 
+0

grazie per il tuo contributo. In realtà l'ho fatto, per averlo letto qui. In questo momento è tutto in una riga. Quindi la citazione "+ taskList +" \ n \ n \ nLink "va fino alla fine. Perché ho avuto lo stesso pensiero (più o meno), ho solo provato a risolverlo in modo diverso ... – Beasly

+0

Quindi continua a dare quell'errore ... – jalopaba

+0

Sì :(anche con: $ {BUILD_LOG} da solo nella stringa – Beasly

0

Hai provato a impostare escapeHtml=true? Può accadere che questo token sia espanso così com'è e che la stringa in " " non sia valida.

+0

Ci proveremo :) – Beasly

+0

Purtroppo neanche io lavoro. Indico sempre una colonna che non esiste. e il "^" che punta al punto di errore sul mio nome utente. Ho davvero avuto grandi speranze qui. Anche provato il contenuto della posta come HTML e testo semplice ... nessuna modifica, non appena "$ {BUILD_LOG, maxLines = 9999, escapeHtml = true}" è all'interno della stringa ... grazie però per averci pensato – Beasly

+0

Forse prova a recuperare il contenuto di build_log in variabile e ad uscire da nuove righe con .replace ("\", "\\")? Quindi non dovrebbe rompere la stringa in 'setText()'. –

0

In ultima variabile versione $ {} BUILD_LOG non era disponibile per me - unica soluzione per ottenere il login contenuti e-mail è stato per me l'impostazione:

msg.setText(build.getLog()) 

come predefinito Pre-inviare Script in configurazione globale Jenkins. ..

Problemi correlati