es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Duplicar la configuración de Gradle en un proyecto de Java.

¿Hay alguna forma de evitar esta duplicación en build.gradle?

“`groovy
pluginManager.withPlugin('java-library') {
apply plugin: 'com.github.spotbugs'

<pre><code>spotbugs {
toolVersion = '4.5.2'
ignoreFailures = false
showStackTraces = true
showProgress = true
excludeFilter = rootProject.file(rootProject.ext.excludeFile)
effort = 'default'
reportLevel = 'default'
reportsDir = file("$buildDir/spotbugs")
maxHeapSize = '1g'
extraArgs = ['-nested:false'] // no jar or zips
}
</code></pre>

y en algún lugar a continuación:

“`groovy
pluginManager.withPlugin(‘application’) {
apply plugin: ‘com.github.spotbugs’

spotbugs {
    toolVersion = '4.5.2'
    ignoreFailures = false
    showStackTraces = true
    showProgress = true
    excludeFilter = rootProject.file(rootProject.ext.excludeFile)
    effort = 'default'
    reportLevel = 'default'
    reportsDir = file("$buildDir/spotbugs")
    maxHeapSize = '1g'
    extraArgs = ['-nested:false'] // no jar or zips
}

Solo quiero poner la misma configuración en un solo lugar.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de evitar esta duplicación en build.gradle. Puedes crear una variable que contenga la configuración común y luego hacer referencia a esa variable donde sea necesario. Por ejemplo:

    def spotbugsConfig = {
        toolVersion = '4.5.2'
        ignoreFailures = false
        showStackTraces = true
        showProgress = true
        excludeFilter = rootProject.file(rootProject.ext.excludeFile)
        effort = 'default'
        reportLevel = 'default'
        reportsDir = file("$buildDir/spotbugs")
        maxHeapSize = '1g'
        extraArgs = ['-nested:false'] // no jar or zips
    }
    
    pluginManager.withPlugin('java-library') {
        apply plugin: 'com.github.spotbugs'
        spotbugs(spotbugsConfig)
    }
    
    ...
    
    pluginManager.withPlugin('application') {
        apply plugin: 'com.github.spotbugs'
        spotbugs(spotbugsConfig)
    }
    

    Aquí, hemos definido una variable spotbugsConfig que contiene toda la configuración común para el plugin Spotbugs. Luego, nos referimos a esta variable donde necesitamos aplicar el plugin Spotbugs con la misma configuración. De esta manera, evitamos la duplicación y hacemos nuestro archivo build.gradle más conciso y mantenible.

Comments are closed.