Как включить Zip-файл в ShadowJar во время сборки Gradle

Я предоставляю ниже того, что у меня есть на данный момент.

В приведенном ниже примере задача Jar создает Jar с файлом Zip (артефакт из другого проекта) внутри него.

Но моя конечная цель - создать супер-банку, которая будет содержать свои зависимости. Я пришел с плагином Shadow, и это кажется чистым решением.

Я пытался указать моей задаче ShadowJar включить файл Zip - но это не работает. Смотрите закомментированный раздел ShadowJar.

Итак, теперь у меня есть создание теневой банки, но затем создание другой банки, которая включает содержимое теневой банки и почтовый индекс. Я вижу, что этот путь полон ошибок (мне пришлось снова применять Манифест)....

В идеале я бы подумал, что есть способ включить артефакт из другой конфигурации в Shadow Jar, и это мое ограничение знаний Gradle, которое здесь не работает.

    buildscript {repositories {jcenter ()} dependencies {classpath 'com.github.jengelman.gradle.plugins: shadow: 1.1.1'}} apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'com.github. johnrengelman.shadow 'project.version = rootProject.ext.deployerVersion // В этом разделе вы объявляете, где найти зависимости ваших репозиториев проекта {
        // Используйте'maven central'для разрешения ваших зависимостей.
        // Вы можете объявить любой репозиторий Maven/Ivy/file здесь.
        mavenCentral()
    }

    configurations {
         pkg
    }

    // В этом разделе вы объявляете зависимости для своего производственного и тестового кода. {
        compile project(':Concenter.Foundation') 
        pkg project(путь: ':Concenter.Platform', конфигурация: 'pkg')

        // Объявляем зависимость для вашей любимой тестовой среды, которую вы хотите использовать в своих тестах.
        // TestNG также поддерживается задачей Gradle Test. Просто измените зависимость // testCompile на testCompile 'org.testng:testng:6.8.1' и добавьте // 'test.useTestNG()' в ваш скрипт сборки.
        testCompile 'junit:junit:4.11'
    }

    jar {зависимость On ':Concenter.Platform:distZip'
        manifest {
             attribute (
                'Main-Class': 'aqilco.concenter.deployer.Deployer',)
        } из configurations.pkg
    }

    /*
    shadowJar {absoluteOn ':Concenter.Platform:distZip'
        manifest {
             attribute (
                'Main-Class': 'aqilco.concenter.deployer.Deployer',)
        } из configurations.pkg
    }
    */

    task pkg(тип: Jar) {зависимость On ': Concenter.Platform: distZip 'зависит от'shadowJar'
        archiveName = jar.baseName + "-" + jar.version + "-pkg." + jar.extension из zipTree(shadowJar.archivePath) из configurations.pkg
        manifest {
             attribute (
                'Main-Class': 'aqilco.concenter.deployer.Deployer',)
        }
    }

0 ответов

Другие вопросы по тегам