我正在使用 gradle shadow 插件构建我的 uber jar。
build.grade 文件看起来像:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2'
}
}
apply plugin: 'com.github.johnrengelman.shadow'
dependencies {
compile "com.amazonaws:aws-lambda-java-events:1.3.0"
}
assemble.dependsOn(shadowJar)
它在 build/libs 文件夹中生成以下 jar。
myProject-1.0.0-SNAPSHOT.jar
myProject-1.0.0-SNAPSHOT-all.jar '//uber jar
我想用 uber jar 替换原来的 jar。我该怎么做?
最佳答案
不清楚为什么要这样做,但我假设您的意思是“使用原始 JAR 的名称”。你应该做两件事:
- 为
jar
任务(或archiveName
,或影响名称的其他属性)提供不同的分类器或禁用它,这样您就不会经常覆盖它在每个构建上避免做不必要的工作 - 更改
shadowJar
任务的分类器
ShadowJar
从 Gradle 内置扩展 Jar
任务,因此该任务中的大部分配置选项都适用于 ShadowJar
任务。
tasks.jar.configure {
classifier = 'default'
}
tasks.shadowJar.configure {
classifier = null
}
关于java - 将 shadow 插件生成的 shadow jar 重命名为原始工件名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48105889/