当前位置: 首页 > 知识库问答 >
问题:

如何更改使用影子罐创建的罐的名称

贾兴学
2023-03-14

我正在使用shadowJar插件构建/创建我的fatJar。在我的身材里。格雷德尔我有这个

shadowJar{
mergeServiceFiles('META-INF/spring.*')
exclude "META-INF/*.SF"
exclude "META-INF/*.DSA"
exclude "META-INF/*.RSA"
exclude "META-INF/LICENSE"
}

使用gradle shadowJar创建我的胖罐子。然而,创建的胖罐子的名称是一个简单的名称。全部是r100。罐子我想把它改成样本快照。r100部署。罐子如何使用ShadowJar覆盖jar名称。

共有3个答案

徐茂材
2023-03-14

结合@richard和@christian dräger的答案

tasks.withType<ShadowJar> {
    archiveFileName.set("${project.name}-${project.version}.jar")
}

这输出格式myProject-0.0.1.jar

韦澄邈
2023-03-14

对于正在寻找如何使用静态编程语言DSL实现这一点的人来说:

tasks.withType<ShadowJar> {
   archiveFileName.set("${archiveBaseName}-${archiveVersion}-${archiveClassifier}.${archiveExtension}")
}
顾永福
2023-03-14

ShadowJar插件提供了一个Jar任务扩展。使用archiveFileName属性进行配置,例如:

shadowJar{
    mergeServiceFiles('META-INF/spring.*')
    exclude "META-INF/*.SF"
    exclude "META-INF/*.DSA"
    exclude "META-INF/*.RSA"
    exclude "META-INF/LICENSE"
    archiveFileName = "sample-${classifier}-ns.r100-deploy.${extension}"
}

您可以使用占位符,如${BasName}${appendin}${version}${分类器}${扩展}

请注意,从ShadowJar版本4开始,ArchiveName现在是ArchiveFileName

 类似资料:
  • 这似乎不起作用...我试图制作一个具有多个依赖项的uber jar,One-Jar似乎过时了,我不能使用默认的gradle uberJar构建器或影子jar。

  • 我对Gradle和shadow jar(Maven的Shade插件的Gradle版本)是新手。我正在构建一个胖jar,我想在其中合并服务文件(这就是我首先使用shadowjar的原因)。根据文档,shadowJar任务继承自gradle Jar任务。因此,我们可以假设它将完全像jar任务一样工作。 下面是jar任务的片段: 结果,它产生了一个脂肪罐与所有的依赖关系爆炸,什么是预期的。当我将任务名称

  • 如标题所示,我想知道如何修改以创建一个唯一的,其中包含所有依赖项(包括kotlin lib)。 我在Groovy中找到了这个示例: 但我不知道我怎么能用kotlin写,除了:

  • 问题内容: 我有一个来自外部来源的jar文件。jar中的所有类都在com.xyz包中。 我想将所有类都移到com.xyzold包中。 这是简单的操作,例如解压缩jar,将xzy文件夹重命名为xyzold并重新压缩它,还是我还需要修改每个类文件? 这是我的解决方案,使用Jar Jar Links 这是我的rules.txt文件的内容: 问题答案: 您可以使用Jar Jar Links 来实现。同样,

  • 我使用JUnit5和Selenium进行测试。我需要创建一个jar文件,当执行该文件时,它将打开浏览器并执行测试用例。 我从这个视频中发现:如何从Selenium项目创建可运行的Jar文件,使用TestNG您可以创建一个对象,设置所需的测试类并运行测试类,但我还没有找到使用JUnit5执行此操作的等效方法 我知道使用JUnit platform launcher,您可以使用下面的代码来运行测试,但

  • 在运行Java8和Gradle6.3的Linux机器上,我需要构建一个由库混合而成的fat jar,一些库来自Maven Central,其他库来自位于存储库根部的本地目录,以及我的和: 运行和之后,如果我可以看到JAR中没有包含任何依赖项。 我的最终目标是使我的项目可执行为。我该怎么解决这个?