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

使用gradle.kts构建和发布测试类

屈升
2023-03-14

我们有一个包含多个子项目的多项目gradle存储库。其中一个子项目应该生成单独的testJar并将其发布到本地maven存储库:

// build a repositories-testJar.jar with test classes for services tests
tasks.register<Jar>("testJar") {
    archiveClassifier.set("testJar")
    from(sourceSets["test"].output)
}

// the testJar must be built within the build phase
tasks.build {
    dependsOn(tasks.withType<Jar>())
}

// needed for publishing plugin to be aware of the testJar
configurations.create("testJar") {
    extendsFrom(configurations["testCompile"])
}

artifacts {
    add("testJar", tasks.named<Jar>("testJar"))
}

这有效,我可以看到-testJar.jar是在/build/libs中生成的。

然后,在根项目gradle中。kts我们设立了一个发布扩展:

allprojects {
    configure<PublishingExtension> {
        publications {
            create<MavenPublication>(project.name) {
                groupId = "foo.bar"
                artifactId = project.name.toLowerCase().replace(":", "-")
                version = "ci"
                from(components["kotlin"])
            }
        }

        repositories {
            maven {
                url = uri("file://${rootProject.rootDir}/../m2")
            }
        }
    }
}

这也正常工作,我可以看到模块发布在m2目录中。但是,testJar没有发布。我找不到如何将testJar工件附加到根项目中定义的发布。

共有1个答案

凌蕴藉
2023-03-14

通过添加以下内容解决:

publishing {
    publications {
        create<MavenPublication>(project.name + "-" + testArtifact.name) {
            groupId = "my.group"
            artifactId = project.name.toLowerCase().replace(":", "-")
            version = "version"
            artifact(testArtifact)
        }
    }
}
 类似资料:
  • 构建 当项目开发完毕,只需要运行一行命令就可以打包你的应用: # 打包正式环境 npm run build:prod # 打包预发布环境 npm run build:stage 构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js 、***.css、index.html 等静态文件。 如果需要自定义构建,比如指定 dist 目录等,则需要通过 co

  • 一旦源代码tarball已经从稳定的发布分支产生,发布过程公共部分便已经开始。但是在tarball进入公开之前,必须经过少量开发者的确认,通常需要三位或者更多。确认不仅仅是检测发布的明显缺陷;理想情况下,开发者应该下载tarball,在干净的系统上构建并安装,运行回归测试包Chapter 8, 管理志愿者的(见the section called “自动测试”),然后执行一些手工测试。假如通过了这

  • Egg.js应用开发-构建和发布 研发流程 开发构建 生产部署 Egg.js应用开发-构建和发布 更新时间:2018-08-08 15:55:03 本章讲解:如何构建部署 研发流程 服务端托管应用的研发流程分为两种:生产环境 和 开发环境 -> 生产环境 生产环境:只有一套线上环境,部署后服务端应用将直接上线。 开发环境 -> 生产环境:存在线下和线上两套相互独立的环境,部署后服务端应用将先在开发

  • 我如何用Gradle在发布模式下构建测试APK?

  • 在项目正常开发,预览效果达到要求的情况下,可以构建项目来进行更多的测试。 导读 熟悉构建发布面板 了解通用构建参数 命令行发布项目 定制项目的构建模版 扩展构建流程 构建流程简介与常见错误处理 发布到 web 平台 发布到原生平台 安装配置原生环境 原生平台 JavaScript 调试 发布到 iOS App Clip (轻 App) 发布到支付宝小游戏 发布到字节小游戏 发布到 Cocos Pl

  • 我有一个多模块项目。而且,我希望能够只做gradle发布,并发布所有模块的所有工件。其中一个问题是,当我包含插件时,我得到了名为“构建”的任务,但在根项目中找不到。 当我运行