Как включить 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',) } }