首页 文章

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

提问于
浏览
1

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

所有文档都说如果你包含 maven-publish 那么他们将执行任务 publishToMavenLocal .

通常会通过 gradle shadowjar 创建一个shadowJar fat jar,但是JitPack上的build命令是不可配置的,因此我们必须修改 publishToMavenLocal 才能使用shadowJar .

2 回答

  • 1

    我向JitPack提出了一个支持请求,他们回来时我已经测试了以下代码,从2018年4月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
        }
    }
    
  • 1

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

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

相关问题