我正在用几种不同的技术制作一个Gradle项目,其中之一是Spring合同。
根据这个教程,生产者在执行:build任务后将存根发布到本地maven存储库。
我正在尝试使用Gradle来执行:build和:publishToMavenLocal任务。它发布所有东西,甚至是普通的jar,而不是存根!
我怎样才能发布存根?
项目的生成文件夹:

项目的本地maven存储库:

如您所见,存根jar没有发布到maven本地。
我的gradle.build
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()
}发布于 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。
要解决问题,只需创建以下发布
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourceJar {
classifier "sources"
}
artifact verifierStubsJar
}
}
}https://stackoverflow.com/questions/72910200
复制相似问题