gpt4 book ai didi

gradle - 如何在没有Shadow Pom的情况下发布Gradle阴影 jar

转载 作者:行者123 更新时间:2023-12-03 03:25:12 25 4
gpt4 key购买 nike

我使用影子jar插件(https://github.com/johnrengelman/shadow)创建了一个额外的jar文件,其中所有依赖项都打包在其中。我还想保留仅包含我的代码和资源的默认生成的jar。在发布jar之前,这非常简单明了。
由于我的影子 jar 里面有所有的部件,因此就发布而言,它的pom文件对我来说不是优先事项。但是,如果我按照shadowJar插件文档(https://imperceptiblethoughts.com/shadow/publishing/#publishing-with-maven-publish-plugin)中列出的说明进行操作

publishing {
publications {
shadow(MavenPublication) { publication ->
project.shadow.component(publication)
}
}
我最终得到了两个不同的pom文件(一个用于常规jar文件,一个用于阴影jar),这些文件已发布到 相同的 URL,一个覆盖另一个。此行为使客户下载默认的jar,但pom文件中没有任何依赖项。
我尝试了多种方法来禁用shadowJar pom文件,但未成功。我该如何工作?

最佳答案

最终,我只是忽略了插件文档中的说明,并像发布源jar一样发布了影子jar:
对单个项目执行此操作的最简单方法是:

publishing {
publications {
Library(MavenPublication) {
from project.components.java
artifact tasks.sourceJar
artifact tasks.shadowJar
}
}
}
如果您有多个项目(并非全部都应用了shadowJar插件),并且想在根项目中添加此逻辑,则可以执行以下操作:
subprojects {
afterEvaluate {
publishing {
publications {
Library(MavenPublication) {
from project.components.java
artifact tasks.sourceJar
if (project.tasks.findByName("shadowJar") != null) {
artifact tasks.shadowJar
}
}
}
}
}
}

关于gradle - 如何在没有Shadow Pom的情况下发布Gradle阴影 jar ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63036976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com