2013-08-01 4 views
5

Come posso rendere disponibile una variabile di ambiente al jetty utilizzando il plugin gradle? Parte del codice che viene eseguito in un servlet richiede l'impostazione di una particolare variabile di ambiente, ma non riesco a trovare un buon modo per inviarlo al processo di jetty come è possibile per un'attività JavaExec (tramite il metodo environment).Invio di una variabile di ambiente al jetty utilizzando jettyRun in Gradle

Anche accettabile sarebbe una proprietà. Ad esempio, se dovessi eseguire java, includerei un -Dproperty.name=blah per inviarlo la proprietà property.name.

Possiamo farlo per attività Test e JavaExec ... possiamo farlo per l'attività JettyRun?

risposta

3

Il contenitore gestito dal plugin Jetty viene eseguito nel processo Gradle, quindi è necessario impostare una variabile di ambiente o una proprietà di sistema per tale processo.

Il plugin Jetty è anche piuttosto obsoleto e limitato, in parte esattamente per il motivo che viene eseguito all'interno del processo Gradle. Raccomando invece di provare lo arquillian-gradle-plugin. Pensiamo che questo plugin spianga la strada per un migliore supporto dei web container Gradle.

+0

Intendi solo "def environmentVar = 'blah'' o qualcosa del genere? – Depressio

+0

Bene, funziona se imposto la proprietà in GRADLE_OPTS (tramite 'GRADLE_OPTS =" - Dproperty.name = blah "'), ma ho bisogno di qualcosa di * poco * più deterministico di quello. C'è un modo per farlo con uno script gradle? – Depressio

+3

Ci scusiamo per lo spam di notifica ... aggiungendo un 'doFirst {System.setProperty (" property.name "," blah ")}' a 'jettyRun' ha funzionato. – Depressio