У меня есть пример проекта со следующей иерархией:
Sample (root)
-- model (simple jar)
-- api (springboot jar)
Я хочу опубликовать обе сгенерированные банки: обычную банку и загрузочную банку в свой локальный репозиторий.
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.
Корень 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 {
}
Добавление задачи bootJava в API build.gradle позволяет публиковать bootJar непосредственно из модуля API, но задача корневой публикации остается неработающей.
publishing {
publications {
bootJava(MavenPublication) {
artifact bootJar
}
}
}
Я пробовал почти все решения из документов и Google, но, похоже, ни одно из них не работает. Кто-нибудь может объяснить, что не так настроено?
Версия Gradle: 6.3