java - 将 shadow 插件生成的 shadow jar 重命名为原始工件名称

标签 java gradle shadow

我正在使用 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 的名称”。你应该做两件事:

  1. jar 任务(或 archiveName,或影响名称的其他属性)提供不同的分类器或禁用它,这样您就不会经常覆盖它在每个构建上避免做不必要的工作
  2. 更改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/

相关文章:

Java/图形: Plotting 3d coordinates?

java - 无法使用 gradle 解决 IntelliJ Idea 中的 : com. google.android.gms:play-services

android - 在Macbook Pro上从gradle.build中的.bashrc访问路径

Android TextView 阴影是如何工作的

java - HashSet 存储相等的对象

java - BlockingQueue 阻止并返回对象,直到具有指定 id 的对象在队列中可用

java - 尝试初始化集群以使用 DistCp 时,Hadoop API 抛出错误

android - 如何更改 React Native Android 项目名称

ios - 关于 mask 层的阴影

Android - 将阴影转换到按钮