Gradle:在已发布的 dist.zip 的 /lib 文件夹中添加 sources.jar 文件以及我的所有其他依赖项

Gradle: Adding sources.jar file within /lib folder of published dist.zip along with all my other dependencies

我有一个正在使用 gradle 构建的 java 项目。我正在为我的项目发布一个 dist.zip 文件夹,我想将我项目的 sources.jar 添加到 dist.zip 中的 /lib 子文件夹。我可以创建一个 sources.jar 文件和我的 dist.zip 文件,但我不确定如何在 dist.zip 中添加 sources.jar。我怎样才能做到这一点?我试图在创建后将 .jar 复制到 /lib 文件夹中,但我无法让它工作。下面是我的 gradle.build 脚本中的发布和 sourcesJar 任务。

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

publishing {

    repositories {  
        maven {
            url 'localfolder'
        }
    }

    publications {

        maven(MavenPublication) {
            groupId 'ca.project'
            artifactId applicationName
            version version

            from components.java

            artifact sourcesJar {
                classifier "sources"
            }

            artifact distZip {
                classifier "dist"
            }
        }

    }
}

您需要告诉 application plugin 在分发中包含您的 sourcesJar 任务的输出:

distributions {
    main {
        contents {
            from sourcesJar
        }
    }
}

这会将它放在根目录中,如果你想把它放在其他地方,你可以这样做:

distributions {
    main {
        contents {
            from(sourcesJar) {
                into "lib"
            }
        }
    }
}