gradle - 如何在 gradle 的分发中包含自定义工件

标签 gradle

我想知道如何以规范方式在使用 gradle 构建的发行版 zip 中包含自定义构建工件。我已经设法通过直接引用工件的路径来做到这一点,但我猜测有一些更好的方法来实现这一点:

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

tasks.distZip.shouldRunAfter tasks.sourcesJar
tasks.distTar.shouldRunAfter tasks.sourcesJar

artifacts {
    archives sourcesJar
}

distributions {
    main {
        contents {
            from { "${libsDir}/${project.name}-${version}-sources.jar" }
        }
    }
}

如何根据源工件的定义引用其名称,或者是否有更好的方法将构建的工件包含在发行版中?

最佳答案

可能是例如:

apply plugin: 'java'
apply plugin: 'distribution'

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

tasks.distZip.shouldRunAfter tasks.sourcesJar
tasks.distTar.shouldRunAfter tasks.sourcesJar

artifacts {
    archives sourcesJar
}

distributions {
    main {
        contents {
            from { tasks.sourcesJar.archivePath }
        }
    }
}

关于gradle - 如何在 gradle 的分发中包含自定义工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34898488/

相关文章:

android - Gradle存在非零值

android - 如何使用 publishNonDefault 但只将一个 Artifact 部署到 Maven

android - 为什么 build.gradle 看起来不像 Groovy?

android - 如何让 Android Studio gradle 执行预构建步骤

layout - gradle 项目对分布式布局的依赖

gradle - 如何在 Kotlin DSL 中读取虚线 Gradle 属性?

android - Jacoco测试报告显示覆盖率为0。执行数据不匹配

linux - gradle构建时无效的编码名称UTF8

android - 无法解析com.github.KingsMentor:MobileVisionBarcodeScanner:2.0.0

Gradle transient 依赖解析 : How to generically prefer `guava-jre` over `guava-android` ?