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

如何使用shadowJar gradle插件而不是maven publish将胖JAR发布到JitPack

卓星波
2023-03-14

关于如何将胖JAR发布到JitPack并不是很直观,因为影子文档没有JitPack的部分,JitPack文档也没有关于胖JAR的部分。

所有文档都说,如果您包括maven publish,那么他们将执行任务publishtoavenlocal

通常通过gradle shadowJar创建shadowJar fat jar,但是JitPack上的build命令是不可配置的,因此我们必须修改publishtoavenlocal以使用shadowJar。

共有2个答案

公孙宏远
2023-03-14

可能有点晚,但我运行了它,但只是将工件添加到发布部分,如下所示:

publishing {
publications {
    mavenJava(MavenPublication) {
        groupId project.group
        artifactId project.name
        version project.version
        from components.java
        artifact sourceJar {
            classifier "sources"
        }
        artifact shadowJar
    }
}....
甘祺
2023-03-14

我向JitPack提出了一个支持请求,他们返回了以下代码,我已经测试过这些代码,从2018/04/12开始运行:

plugins {
    id "com.github.johnrengelman.shadow" version "2.0.2"
}

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'com.github.johnrengelman.shadow'

group = 'com.github.jitpack-io'

repositories {
  mavenCentral()
}

dependencies {
  compile 'com.google.guava:guava:18.0'
  testCompile 'junit:junit:4.12'
}

task sourcesJar(type: Jar, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

shadowJar {
    archiveName = "$baseName-$version.$extension"
}

artifacts {
    archives sourcesJar
    archives javadocJar
    archives shadowJar
}

他们已经通过GitHub发布了代码。

它还可以与gradle包装器结合使用:

allprojects {
    task wrapper(type: Wrapper) {
        gradleVersion = '4.4'
        distributionType = Wrapper.DistributionType.ALL
    }
}
 类似资料:
  • 我试图发布一个由Gradle 6.0创建的模糊JAR。1个ProGuard插件到Maven存储库。在过去的几天里,我学到了很多关于Gradle配置、变体和工件的知识,但我似乎无法做到这一点。我相信相关文件就是这里的文件。 我创建了一个简单的示例,展示了我在Github上的预期设置。 如果我运行在这个项目中,我得到了以下错误。 我还尝试了不推荐的插件。不幸的是,这个插件忽略了定制的ProGuard

  • 我需要为我的一个子项目构建一个jar,包括依赖项,以便它可以用作。 我有一个多模块的sbt项目,这个模块是最低级别的(也是纯Java)。 我可以(例如使用sbt-onejar、sbt-proGuard或sbt组件)覆盖最低级别模块的打包方式吗? 看起来这些工具真的被设计成发布后的步骤,但是我真的需要一个(替换或附加的)发布的人工制品来包含依赖项(但只适用于这一个模块)。 更新:发布sbt程序集是针

  • null 当我运行./gradlew artifactoryPublish时,它将记录: 尝试从其他生成加载插件。Gradle: 带设置。分级: 导致此错误: 我希望在运行ArtiFactoryPublish时,将publishToMavenLocal创建的所有工件发布到Artifactory。如果artifactoryPublish是错误的工具,我愿意接受它的替代方法。 如何将Gradle插件发

  • 嘿,有的人,我是Android和Kotlin的新手,你能帮我这个请。 在这里,结果发布到吐司,我希望它在输入框中,如何做到这一点?

  • 我创建了一个开源项目,希望将其发布到maven central,以便用户只需在POM中引用它就可以使用该库。例如: 我找到了几个在线教程,但其中一些已经过时,一些建议自动化整个过程,从而公开复杂化它。 例如,一篇教程建议为github帐户创建SSH键,并让maven在推送到maven Central时自动创建一个git标记。虽然这是有用的,但没有必要开始。 另一个例子,试图直接通过maven发布它

  • 我试图使用Gradle将Jar文件发布到Azure DevOps工件中,但我得到了以下错误信息: 失败:生成失败,出现异常。 > 问题:在根项目“Project1”中找不到任务“publish”。 尝试:运行gradle tasks以获取可用任务的列表。使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--扫描以获得完整的洞察力。