2016-07-15 2 views
1

Я очень смущен, я не эксперт по градиенту, не очень знакомый с синтаксисом Groovy. Дело в том, что у меня есть транзитивная зависимость в моих библиотеках протоколирования, которую я хочу исключить, но когда я пытаюсь загрузить свое приложение с помощью gradle bootRun, похоже, что я не могу, потому что у меня какая-то синтаксическая ошибка, и я не могу понять, что это является. Это ошибка, я получаю:Gradle исключая зависимость очень запутанной

>gradle bootRun 

FAILURE: Build failed with an exception. 

* Where: 
Build file 'C:\workspace\tictactoe\build.gradle' line: 55 

* What went wrong: 
A problem occurred evaluating root project 'tictactoe'. 
> No signature of method: java.util.LinkedHashMap.call() is applicable for argument types: (build_bkiihj275q6h9zzyz2rjvcelk$_run_closure3$_closure7) values: [build_bkiihj275q6h9zzyz2 
[email protected]] 
Possible solutions: wait(), any(), wait(long), any(groovy.lang.Closure), take(int), max(groovy.lang.Closure) 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 5.678 secs 

И это часть моей gradle.build где я добавляю все мои зависимости:

compile (
       [group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.6.2'], 
       [group: 'org.springframework.boot', name: 'spring-boot-starter-actuator'], 
       [group: 'org.springframework.boot', name: 'spring-boot-starter-jetty'], 
       [group: 'org.springframework.boot', name: 'spring-boot-starter-logging'], 
       [group: 'org.springframework', name: 'spring-context-support'], 
       [group: 'org.apache.commons', name: 'commons-lang3', version: commonsLangVersion], 
       [group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion], 
       [group: 'org.slf4j', name: 'slf4j-log4j12', version:'1.7.10'] 
         { 
          exclude group: 'ch.qos.logback', module: 'logback-classic' 
         }, 
       [group: 'log4j', name: 'log4j', version:'1.2.17'], 
       [group: 'com.mashape.unirest', name: 'unirest-java', version: unirestVersion], 
       [group: 'com.cedarsoftware', name: 'json-io', version: jsonioVersion] 
     ) 

ответ

1

Это должно сделать.

[ 
    [group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.6.2'], 
    [group: 'org.springframework.boot', name: 'spring-boot-starter-actuator'], 
    [group: 'org.springframework.boot', name: 'spring-boot-starter-jetty'], 
    [group: 'org.springframework.boot', name: 'spring-boot-starter-logging'], 
    [group: 'org.springframework', name: 'spring-context-support'], 
    [group: 'org.apache.commons', name: 'commons-lang3', version: commonsLangVersion], 
    [group: 'org.slf4j', name: 'slf4j-api', version: slf4jVersion], 
    [group: 'log4j', name: 'log4j', version:'1.2.17'], 
    [group: 'com.mashape.unirest', name: 'unirest-java', version: unirestVersion], 
    [group: 'com.cedarsoftware', name: 'json-io', version: jsonioVersion] 
].each { 
    compile it 
} 

compile 'org.slf4j:slf4j-log4j12:1.7.10', { 
    exclude module: 'logback-classic' 
} 

Вы можете сделать еще один шаг, чтобы сделать его проще, так как

[ 
    'org.slf4j:jcl-over-slf4j:1.6.2', 
    'log4j:log4j:1.2.17', 
    'foo:bar:0.1' 
].each { compile it } 
+0

Возможно, вы захотите исключить логбук глобально из вашего проекта. –

1

Вы, вероятно, хотите, чтобы глобально исключить Logback из проекта. Самый простой способ сделать это, чтобы добавить следующее определение вашего проекта build.gradle:

configurations.all { 
    exclude group: "ch.qos.logback", module: "logback-classic" 
} 

Если вы хотите, чтобы исключить все в этой группе, а не только конкретный артефакт (logback-classic), вы можете опустить module. Нравится так:

configurations.all { 
    exclude group: "ch.qos.logback" 
} 
Смежные вопросы