spring-gradle-plugins / dependency-management-plugin

A Gradle plugin that provides Maven-like dependency management functionality
690 stars 88 forks source link

can not add project dependency more than one #351

Closed beyond-seunghyun closed 1 year ago

beyond-seunghyun commented 1 year ago

There are 3 projects.

root

Gradle Files

settings.gradle.kts

rootProject.name = "spring-sample"
include("app", "lib1", "lib2")

build.gradle.kts (:app)

plugins {
    id("org.springframework.boot") version "3.0.6"
    id("io.spring.dependency-management") version "1.1.0"
    kotlin("jvm") version "1.7.22"
}

group = "com.example"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_17

repositories {
    mavenCentral()
}

dependencies {
    implementation(project(":lib1"))
    implementation(project(":lib2"))
}

build.gradle.kts (:lib1, :lib2)

plugins {
    kotlin("jvm") version "1.7.22"
}

group = "com.example"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_17

repositories {
    mavenCentral()
}

Result of running gradle app:assemble

Configuration on demand is an incubating feature.
> Task :lib1:compileKotlin NO-SOURCE
> Task :lib2:compileKotlin NO-SOURCE
> Task :app:processResources UP-TO-DATE
> Task :lib1:compileJava NO-SOURCE
> Task :lib2:compileJava NO-SOURCE
> Task :lib2:processResources NO-SOURCE
> Task :lib1:processResources NO-SOURCE
> Task :lib1:classes UP-TO-DATE
> Task :lib2:classes UP-TO-DATE
> Task :lib1:jar UP-TO-DATE
> Task :lib2:jar UP-TO-DATE
> Task :lib1:inspectClassesForKotlinIC UP-TO-DATE
> Task :lib2:inspectClassesForKotlinIC UP-TO-DATE
> Task :app:compileKotlin FROM-CACHE
> Task :app:compileJava NO-SOURCE
> Task :app:classes UP-TO-DATE
> Task :app:jar UP-TO-DATE
> Task :app:inspectClassesForKotlinIC UP-TO-DATE
> Task :app:resolveMainClassName UP-TO-DATE
> Task :app:bootJar FAILED
10 actionable tasks: 1 executed, 1 from cache, 8 up-to-date

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:bootJar'.
> Could not resolve all files for configuration ':app:runtimeClasspath'.
   > Could not find com.example:lib2:0.0.1-SNAPSHOT.
     Required by:
         project :app

If I add only one project dependency like below, then It's OK.

dependencies {
    implementation(project(":lib1"))
    // implementation(project(":lib2"))
}
Configuration on demand is an incubating feature.
> Task :lib1:compileKotlin NO-SOURCE
> Task :app:processResources UP-TO-DATE
> Task :lib1:compileJava NO-SOURCE
> Task :lib1:processResources NO-SOURCE
> Task :lib1:classes UP-TO-DATE
> Task :lib1:jar UP-TO-DATE
> Task :lib1:inspectClassesForKotlinIC UP-TO-DATE
> Task :app:compileKotlin
> Task :app:compileJava NO-SOURCE
> Task :app:classes UP-TO-DATE
> Task :app:jar UP-TO-DATE
> Task :app:inspectClassesForKotlinIC UP-TO-DATE
> Task :app:resolveMainClassName UP-TO-DATE
> Task :app:bootJar
> Task :app:assemble

BUILD SUCCESSFUL in 295ms
8 actionable tasks: 2 executed, 6 up-to-date
23:44:42: Execution finished 'assemble'.
wilkinsona commented 1 year ago

I think this is a duplicate of #321. Please try 1.1.1-SNAPSHOT that's available from https://repo.spring.io/plugins-snapshot. If it doesn't resolve the problem, please provide a complete yet minimal sample that reproduces the problem. That should be something that can be unzipped or git cloned and run without having to copy-paste, guess the version of Gradle and the contents of gradle.properties, and so on.

beyond-seunghyun commented 1 year ago

It works šŸ‘ Thank you~!