我正在使用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名称。
结合@richard和@christian dräger的答案
tasks.withType<ShadowJar> {
archiveFileName.set("${project.name}-${project.version}.jar")
}
这输出格式myProject-0.0.1.jar
对于正在寻找如何使用静态编程语言DSL实现这一点的人来说:
tasks.withType<ShadowJar> {
archiveFileName.set("${archiveBaseName}-${archiveVersion}-${archiveClassifier}.${archiveExtension}")
}
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中没有包含任何依赖项。 我的最终目标是使我的项目可执行为。我该怎么解决这个?