Создайте отдельные shadowJars для кода и зависимостей - PullRequest
0 голосов
/ 21 декабря 2018

Используя плагин gradle shadowJar версии 4.0.2 и gradle 4.10, я хотел создать два отдельных shadowJar, один для моего исходного кода и другой для моих зависимостей (поскольку зависимости большие и редко меняются, я не хочу их переупаковыватькаждый раз, когда я меняю свой исходный код).Я имею в виду, что у меня есть плагин gradle, который добавляет две отдельные задачи и принимает те же конфигурации, которые были предоставлены пользователем для shadowJar, и переопределяет конфигурации / источники, используемые для создания shadowJar.

Ниже приведено то, что у меня естьдо сих пор пытаюсь найти чистый способ передать теневые конфигурации только один раз, и есть ли другие ошибки, о которых мне нужно беспокоиться (например, наличие двух файлов mergeServiceFiles сломается и т. д.)

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

task dependencyShadowJar(type: ShadowJar) {
 mergeServiceFiles()
 zip64 = true
 relocate 'com.google.common', 'com.shadow.com.google.common'
 classifier = 'dependencies'
 configurations = [project.configurations.runtime]
}

task userCodeShadowJar(type: ShadowJar) {
 mergeServiceFiles()
 zip64 = true
 relocate 'com.google.common', 'com.shadow.com.google.common'
 classifier = 'mycode'
 from sourceSets.main.output
}

task splitShadowJar {
 doLast {
    println "Building separate src and dependency shadowJars"
 }
}

splitShadowJar.dependsOn dependencyShadowJar
dependencyShadowJar.dependsOn userCodeShadowJar
  • В идеале я хотел бы, чтобы параметры shadowJar были указаны один раз, а задачи копировали те же настройки. Требуется ли создание нестандартной задачи плагина в groovy?
  • Могу ли я скопировать настройки из существующего shadowJar, который пользователь указал, и просто переопределяет только часть from или configurations для моей цели

Кто-нибудь пытался сделать что-то подобное?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...