首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用shadowJar gradle插件而不是maven发布将fat JAR发布到JitPack

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

Stack Overflow用户
提问于 2018-04-07 02:26:09
回答 2查看 1.5K关注 0票数 2

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

所有的文档都说,如果包含maven-publish,那么它们将执行任务publishToMavenLocal

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

EN

回答 2

Stack Overflow用户

发布于 2018-04-07 02:26:09

我向JitPack提出了支持请求,他们返回了以下代码,我已经测试了这些代码在2018/04/12期间可以正常工作:

代码语言:javascript
复制
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包装器结合使用:

代码语言:javascript
复制
allprojects {
    task wrapper(type: Wrapper) {
        gradleVersion = '4.4'
        distributionType = Wrapper.DistributionType.ALL
    }
}
票数 3
EN

Stack Overflow用户

发布于 2018-05-15 13:36:14

可能有点晚了,但我让它运行了,只是像这样将工件添加到发布部分:

代码语言:javascript
复制
publishing {
publications {
    mavenJava(MavenPublication) {
        groupId project.group
        artifactId project.name
        version project.version
        from components.java
        artifact sourceJar {
            classifier "sources"
        }
        artifact shadowJar
    }
}....
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49698961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档