使用gradle shadowJar插件版本4.0.2和gradle 4.10,我想创建两个单独的shadowJars,一个用于我的源代码,另一个用于我的依赖项(因为依赖项很大,很少更改,所以我不想重新打包它们每次更改源代码时)。我想到的是有一个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
from
或configurations
部分有人尝试过类似的事情吗?