В задаче по умолчанию shadowJar
используется конфигурация runtime
, см. документы -
Чтобы скрыть конфигурации v1
и v2
, мы можем определить две новые задачитипа ShadowJar
(их необходимо настроить).
На самом деле v1
и v2
могут быть определены как "нормальные" конфигурации, то есть избегая использования вариантов возможностей (этоПроще, более того, при попытке использовать shadowJar и v1Implementation
выше, у нас есть ошибка (Resolving configuration 'v1Implementation' directly is not allowed
).
См. отредактированный пример ниже, он может быть построен с помощью gradle shadowJar1 shadowJar2
.
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.jengelman.gradle.plugins:shadow:5.0.0"
}
}
apply plugin: "com.github.johnrengelman.shadow"
apply plugin: 'java'
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
mavenCentral()
}
configurations {
v1 {
extendsFrom(implementation)
}
v2 {
extendsFrom(implementation)
}
}
dependencies {
// tweaking deps here
v1('ant:ant:1.6')
v2('junit:junit:4.12')
}
task shadowJar1(type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar ) {
classifier = 'v1'
configurations=[project.configurations.v1]
}
task shadowJar2(type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar ) {
classifier = 'v2'
configurations=[project.configurations.v2]
}