首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring契约测试--将存根发布到本地存储库

Spring契约测试--将存根发布到本地存储库
EN

Stack Overflow用户
提问于 2022-07-08 10:38:59
回答 1查看 249关注 0票数 1

我正在用几种不同的技术制作一个Gradle项目,其中之一是Spring合同。

根据这个教程,生产者在执行:build任务后将存根发布到本地maven存储库。

我正在尝试使用Gradle来执行:build:publishToMavenLocal任务。它发布所有东西,甚至是普通的jar,而不是存根!

我怎样才能发布存根?

项目的生成文件夹:

项目的本地maven存储库:

如您所见,存根jar没有发布到maven本地。

我的gradle.build

代码语言:javascript
复制
buildscript {
    dependencies {
        classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:3.1.3"
    }
}

plugins {
    id 'org.springframework.boot'
    id 'io.spring.dependency-management'
    id 'java'
    id "org.springframework.cloud.contract"
    id 'maven-publish'
    id 'java-library'
}

jar {
    archivesBaseName = 'pcshop'
}

group 'com.capgemini'
version '1.0-SNAPSHOT'

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-contract-dependencies:3.1.3"
    }
}

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
    implementation 'org.springframework.boot:spring-boot-starter-web:2.7.0'
    implementation 'org.springframework.kafka:spring-kafka:2.8.5'
    implementation group: 'org.codehaus.jettison', name: 'jettison', version: '1.5.0'
    implementation 'org.apache.geode:geode-core:1.14.4'
    testImplementation 'org.springframework.boot:spring-boot-starter-test:2.7.0'
    testImplementation 'org.springframework.kafka:spring-kafka-test:2.8.5'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
    implementation 'org.springframework.kafka:spring-kafka:2.8.7'
    testImplementation 'org.springframework.kafka:spring-kafka-test:2.8.7'
    implementation 'org.springframework.cloud:spring-cloud-contract-maven-plugin:3.1.3'
    testImplementation 'org.springframework.cloud:spring-cloud-starter-contract-verifier:3.1.3'
    testImplementation 'org.springframework.cloud:spring-cloud-contract-wiremock:3.1.3'
    testImplementation 'org.springframework.cloud:spring-cloud-starter-contract-stub-runner:3.1.3'
    testImplementation 'org.springframework.cloud:spring-cloud-contract-stub-runner:3.1.3'
}

task sourceJar(type: Jar) {
    from sourceSets.main.allJava
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java

            artifact sourceJar {
                classifier "sources"
            }
        }
    }
}

contracts {
    baseClassForTests = 'com.capgemini.pcshop.BaseTestClass'
}

test {
    useJUnitPlatform()
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-08 10:56:44

这是因为我们不再直接创建合适的出版物。您可以在这里读到更多关于这个的https://docs.spring.io/spring-cloud-contract/docs/current/reference/html/gradle-project.html#gradle-publishing-stubs-to-artifact-repo

要解决问题,只需创建以下发布

代码语言:javascript
复制
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java

            artifact sourceJar {
                classifier "sources"
            }

            
            artifact verifierStubsJar
        }
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72910200

复制
相关文章

相似问题

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