Qual é o plugin Gradle adequado para oferecer suporte ao método 'fornecido'?
-
21-12-2019 - |
Pergunta
Atualmente estou tentando incluir o auxiliar do Projeto Lombok em meu projeto Gradle, mas ao seguir suas instruções para Gradle dentro do meu build.gradle, estou recebendo o seguinte erro:
Erro:(11, 0) Erro de script de compilação, método Gradle DSL não suportado encontrado:'oferecido()'!
As possíveis causas podem ser:
- você está usando a versão Gradle onde o método está ausente
- você não aplicou o plugin Gradle que fornece o método
- ou há um erro em um script de construção
Meu arquivo build.gradle atual:
apply plugin: 'java'
sourceCompatibility = 1.5
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
provided "org.projectlombok:lombok:1.14.4"
testCompile group: 'junit', name: 'junit', version: '4.11'
}
Solução
A partir da versão 2.12, provided
escopo é chamado compileOnly
Resposta antiga:
O escopo fornecido está disponível no plugin 'war' (http://www.gradle.org/docs/current/userguide/war_plugin.html , provideCompile ) Se você não quiser usar o plugin 'war', também há um problema aberto no JIRA relacionado ao escopo 'fornecido' http://issues.gradle.org/browse/GRADLE-784 , a solução sugerida é criar sua própria configuração:
configurations {
provided
}
e configure-o para ser usado com seu classpath de compilação:
sourceSets {
main {
compileClasspath += configurations.provided
}
}
Outras dicas
Verifique o arquivo Gradle no nível do aplicativo.Se alguma linha estiver assim:
compile dependency.gson provided dependency.javaxAnnotation
Edite assim:
compile dependency.gson
provided dependency.javaxAnnotation
Deveria funcionar.