Исключить время выполнения пути к классу Gradle при запуске JettyRun - PullRequest
7 голосов
/ 02 ноября 2011

У меня есть базовый прогон проекта веб-приложения Gradle для мельницы, и он работает нормально, но я заметил, что путь к классу Gradle во время выполнения включен в Jetty, что может привести к конфликту с веб-приложениями.

Обратите внимание на то, что gradle использует немного более старую версию logback и что SL4J предупреждает, что он нашел несколько привязок в 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.

Есть ли способ исключить включение пути к классу времени выполнения gradle при запуске задачи jettyRun?Я использую последнюю версию Gradle 1.0 milestone 5.

Я ищу что-то вроде 'includeAntRuntime' в задаче javac в Ant.

http://ant.apache.org/manual/Tasks/javac.html

includeAntRuntime Включать ли библиотеки времени выполнения Ant в путь к классам;по умолчанию да, если не установлен build.sysclasspath.Обычно лучше установить значение false, чтобы поведение скрипта не зависело от среды, в которой он запущен.

Урезано build.gradle:

apply plugin: 'groovy'
apply plugin: 'war'
apply plugin: 'jetty'

jettyRun {
    contextPath = ''
}

Ответы [ 2 ]

2 голосов
/ 03 ноября 2011

Как описано в руководстве для задачи jettyRun , у него есть свойство classpath, которое по умолчанию установлено на project.sourceSets.main.runtimeClasspath.Вы можете просто установить это свойство на выбранный вами путь к классу:

configurations{
  myJettyRuntime
}

dependencies{
  myJettyRuntime "group:name:version"
  ...
}

jettyRun{
  classpath = configurations.myJettyRuntime
}

или вы можете добавить или вычесть ненужные или конфликтующие зависимости из этого пути к классу, используя операторы -= и += соответственно.

jettyRun{
  classpath -= configurations.myExcludedConf
}
0 голосов
/ 07 ноября 2011

Если вы просто беспокоитесь о двух привязках SLF4j, может показаться, что вы можете проигнорировать предупреждение в этом случае .Это именно то, что я делаю.

...