Как я могу исключить банки с помощью BootJar, аналогичного customConfiguration в BootRepackage?

Недавно я выполнил весеннюю загрузочную миграцию с 1.5.8 to 2.1.14-RELEASEи используя gradle в качестве сценария сборки. Я использую плагины spring-boot-gradle-plugin и spring-boot-dependency-management. Мы создаем различные исполняемые jar-файлы для eureka, oauth, zuul и т. Д., Используя задачи Gradle. Итак, мы исключаем банки для каждой задачи, используя customConfiguration property of BootRepackage.Но теперь они заменили BootRepackage with BootJarв более новой версии. Я упомянул мой файл build.gradle ниже.

      // During Migration changed from Jar to BootJar
task eurekaAppJar(type: BootJar) {
    baseName = 'eurekaJar'
    version = '0.0.1'
    println sourceSets.main.output
    manifest {
        attributes 'Main-Class': "org.springframework.boot.loader.JarLauncher"
        attributes 'Start-Class': "com.abc.abcCompany.service.eurekaApp.EurekaApplication"
        attributes 'Implementation-Version': "001"
    }
    bootJar {
        mainClassName = "com.abc.abcCompany.service.eurekaApp.EurekaApplication"
    }
    classpath sourceSets.main.runtimeClasspath
}
// During Migration changed from Jar to BootJar
task oAuthConfigJar(type: BootJar) {
    baseName = 'oAuthConfigJar'
    version = '0.0.1'

    manifest {
        attributes 'Main-Class': "org.springframework.boot.loader.JarLauncher"
        attributes 'Start-Class': "com.abc.abcCompany.service.authserver.AuthServerApplication"
        attributes 'Implementation-Version': "001"

    }
    springBoot {
        mainClassName = "com.abcCompany.service.authserver.AuthServerApplication"
    }
    classpath sourceSets.main.runtimeClasspath
}
// During migration changed from BootRepackage to BootJar
task eurekaBoot(type: BootJar, dependsOn: eurekaAppJar) {
    mainClassName = 'com.abc.abcCompany.service.eurekaApp.EurekaApplication'
// During migration commented the below code
//        customConfiguration = "eurekaconfiguration"
//        withJarTask = eztrackerEurekaJar
}


// During migration changed from BootRepackage to BootJar
task oAuthConfigJarBoot(type: BootJar, dependsOn: oAuthConfigJar) {
    println " Executing eztrackerApiGatewayBoot task"
    mainClassName = 'com.abc.abcCompany.service.authserver.AuthServerApplication'
// During migration commented the below code
//        customConfiguration = "zuulconfiguration"
//        withJarTask = eztrackerApiGatewayJar
}

configurations {
    zuulconfiguration.exclude group: 'org.springframework.cloud', module: 'spring-cloud-config-server'
    zuulconfiguration.exclude group: 'org.springframework.cloud', module: 'spring-cloud-config-client'
    zuulconfiguration.exclude group: 'org.springframework.cloud', module: 'spring-cloud-starter-oauth2'
    zuulconfiguration.exclude group: 'org.springframework.boot', module: 'spring-boot-starter-data-jpa'
    zuulconfiguration.exclude group: 'org.springframework.security', module: 'spring-security-config'
    zuulconfiguration.exclude group: 'org.springframework.security', module: 'spring-security-crypto'
    zuulconfiguration.exclude group: 'org.springframework.security', module: 'spring-security-core'
    zuulconfiguration.exclude group: 'org.springframework.security', module: 'spring-security-web'
    zuulconfiguration.exclude group: 'org.apache.poi'
    zuulconfiguration.exclude group: 'com.opencsv'
    zuulconfiguration.exclude group: 'com.oracle', module: 'ojdbc8'
    zuulconfiguration.extendsFrom(compile)
}



configurations {
    eurekaconfiguration.exclude group: 'org.springframework.cloud', module: 'spring-cloud-config-server'
    eurekaconfiguration.exclude group: 'org.springframework.cloud', module: 'spring-cloud-config-client'
    eurekaconfiguration.exclude group: 'org.springframework.cloud', module: 'spring-cloud-starter-config'
    eurekaconfiguration.exclude group: 'org.springframework.cloud', module: 'spring-cloud-starter-oauth2'
    eurekaconfiguration.exclude group: 'org.springframework.cloud', module: 'spring-cloud-starter-zuul'
    eurekaconfiguration.exclude group: 'org.springframework.boot', module: 'spring-boot-starter-data-jpa'
    eurekaconfiguration.exclude group: 'org.springframework.boot', module: 'spring-boot-starter-aop'
    eurekaconfiguration.exclude group: 'org.springframework.security', module: 'spring-security-config'
    eurekaconfiguration.exclude group: 'org.springframework.security', module: 'spring-security-crypto'
    eurekaconfiguration.exclude group: 'org.springframework.security', module: 'spring-security-core'
    eurekaconfiguration.exclude group: 'org.springframework.security', module: 'spring-security-web'
    eurekaconfiguration.exclude group: 'org.apache.poi'
    eurekaconfiguration.exclude group: 'com.opencsv'
    eurekaconfiguration.exclude group: 'org.springframework.retry'
    eurekaconfiguration.exclude group: 'com.oracle', module: 'ojdbc8'
    eurekaconfiguration.extendsFrom(compile)
}
 

В приведенном выше коде мы использовали customConfiguration of BootRepackageчтобы исключить несколько банок / зависимостей. Теперь в этой более новой версии, как я могу исключить банки с помощью BootJar.

1 ответ

Предполагая, что он содержит все зависимости, которые должны быть упакованы внутри вашего, вы можете использовать его, а вывод основного источника установлен как eurekaAppJarпуть к классам:

      task eurekaAppJar(type: BootJar) {
    baseName = 'eurekaJar'
    version = '0.0.1'
    manifest {
        attributes 'Main-Class': "org.springframework.boot.loader.JarLauncher"
        attributes 'Start-Class': "com.abc.abcCompany.service.eurekaApp.EurekaApplication"
        attributes 'Implementation-Version': "001"
    }
    bootJar {
        mainClassName = "com.abc.abcCompany.service.eurekaApp.EurekaApplication"
    }
    classpath configurations.eurekaconfiguration.plus(sourceSets.main.output)
}

Это приведет к BOOT-INF/lib содержащий банки всех зависимостей в eurekaconfiguration и BOOT-INF классы, содержащие ресурсы из src/main/resources и классы, созданные путем компиляции всего в src/main/java.