Ho il progetto base dell'applicazione web Gradle del mulino e funziona, ma ho notato che il runtime del classpath di Gradle viene incluso nel molo che ha il potenziale per entrare in conflitto con le applicazioni web .Escludi runtime del classpath di Gradle all'avvio di JettyRun
L'avviso sotto quel gradle sta utilizzando una versione leggermente più vecchia del logback e che SL4J avverte che ha trovato più collegamenti nel classpath.
:jettyRun
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/dev/java/tools/gradle-1.0-milestone-5/lib/logback-classic-0.9.29.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/kirk.rasmussen/.gradle/caches/artifacts-3/ch.qos.logback/logback-classic/fd9fe39e28f1bd54eee47f04ca040f2b/jars/logback-classic-0.9.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Esiste un modo per escludere classpath runtime Gradle venga incluso quando si esegue compito jettyRun? Sto usando l'ultima versione di Milestone 5 di Gradle.
Sto cercando qualcosa sulla falsariga di "includeAntRuntime" nel task javac in Ant.
http://ant.apache.org/manual/Tasks/javac.html
includeAntRuntime Se includere le librerie di runtime Ant nel percorso di classe; il valore predefinito è yes, a meno che sia impostato build.sysclasspath. In genere è meglio impostarlo su false in modo che il comportamento dello script non sia sensibile all'ambiente in cui viene eseguito.
ridotta build.gradle:
apply plugin: 'groovy'
apply plugin: 'war'
apply plugin: 'jetty'
jettyRun {
contextPath = ''
}
Grazie, è una buona idea, ma sarebbe ancora meglio se questa funzionalità fosse integrata nella funzionalità, quindi non devo determinare quali elementi debbano essere esclusi. Non sono convinto che ciò che suggerisci possa funzionare perché la documentazione implica che sia additivo. Il classpath Gradle sembra che potrebbe venire per la corsa. C'è una buona ragione per cui il classpath Gradle è necessario dal plugin jetty per avviare il contenitore? –
Ho usato con successo '- =' su 'sourceSet.main.compileClasspath' quindi dovrebbe funzionare allo stesso modo per il classpath di jetty. Non so perché e per quale motivo gradle sta includendo il suo classpath. Il manuale suggerisce che, per impostazione predefinita, classpath è impostato su 'project.source.msin.runtimeClasspath', che dovrebbe essere il classpath dell'applicazione e non di gradle. Se il problema persiste con l'ultima versione gradle, posso solo suggerire di archiviare un bug report. – rodion