У меня есть пример проекта со следующей иерархией:
Sample (root)
-- model (simple jar)
-- api (springboot jar)
Я хочу опубликовать sh оба сгенерированных файла jar: plain jar & bootJar в моем localRepository.
gradlew clean build -xTest publishToMavenLocal
Однако возникает следующая ошибка:
* What went wrong:
Execution failed for task ':api:publishMavenJavaPublicationToMavenLocal'.
> Failed to publish publication 'mavenJava' to repository 'mavenLocal'
> Artifact api.jar wasn't produced by this build.
root build.gradle является следующим:
plugins {
id 'java'
id "org.springframework.boot" version "2.2.5.RELEASE" apply false
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
}
group 'sample'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
ext {
artifactVersion = version
springBootVersion = "2.2.5.RELEASE"
}
allprojects {
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'maven'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
repositories {
mavenCentral()
jcenter()
}
}
subprojects {
apply plugin: "io.spring.dependency-management"
apply plugin: "maven-publish"
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
}
}
dependencies {
implementation "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId project.group
artifactId project.name
version project.version
from components.java
}
}
}
}
api build.gradle
apply plugin: 'org.springframework.boot'
dependencies {
compile project(":model")
implementation "org.springframework.boot:spring-boot-starter-web"
}
bootJar {
}
Добавление Задача boot Java для api build.gradle позволяет публиковать sh bootJar непосредственно из модуля api, но задача root publi sh остается неработоспособной.
publishing {
publications {
bootJava(MavenPublication) {
artifact bootJar
}
}
}
Я пробовал почти каждое решение от docs & google, но ни одно, похоже, не работает. Кто-нибудь может объяснить, что неправильно настроено?
Версия Gradle: 6.3