Hi all,
As a beginner in gradle and also in java, I am trying to follow a gradle tutorial where a simple bootspring project gradle-multiproject-masterclass consists of 3 subprojects
app, model and service. I am stuck trying to build the whole project with this error:
error: package com.tomgregory.maxirail.service does not exist
issued during :app:compileJava
I don’t understand this error as implementation(project(“:service”)) is declared in app dependencies section of app/build.gradle.kts
I have tried googling and using ChatGpt without luck unfortunately.
Could you please help me solve the following error during app build, issued by :app:compileJava ?
Here is the scan build
.../gradle-multiproject-masterclass/app/src/main/java/com/tomgregory/maxirail/controller/MaxiRailController.java:3: error: package com.tomgregory.maxirail.service does not exist
import com.tomgregory.maxirail.service.TrainTimeService;
^
Here is MaxiRailController.java file:
//MaxiRailController.java
package com.tomgregory.maxirail.controller;
import com.tomgregory.maxirail.model.TrainTime;
import com.tomgregory.maxirail.service.TrainTimeService;
@RestController
public class MaxiRailController {
private final TrainTimeService trainTimeService;
here is the structure of the project:
$tree app/src
app/src
└── main
└── java
└── com
└── tomgregory
└── maxirail
├── MaxiRailApplication.java
└── controller
└── MaxiRailController.java
$tree service/src
service/src/
└── main
└── com
└── tomgregory
└── maxirail
└── service
└── TrainTimeService.java
gradle-multiproject-masterclass$ tree . -L 2
.
├── app
│ ├── build
│ ├── build.gradle.kts
│ └── src
├── build
│ ├── classes
│ ├── generated
│ ├── libs
│ ├── resolvedMainClassName
│ └── tmp
├── gradle
│ ├── libs.versions.toml
│ └── wrapper
├── gradlew
├── gradlew.bat
├── model
│ ├── build
│ ├── build.gradle.kts
│ └── src
├── service
│ ├── build.gradle.kts
│ └── src
└── settings.gradle.kts
Below setting.gradle.kts:
rootProject.name = "gradle-multiproject-masterclass"
include("app", "model", "service")
Below app/build.gradle.kts:
plugins{
id("java")
id("io.spring.dependency-management") version "1.0.11.RELEASE" //suggestion // by ChatGPT
id("org.springframework.boot") version "3.2.2"
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web:3.2.2")
implementation(project(":service"))
}
and
service/build.gradle.kts
plugins {
`java-library`
}
repositories {
mavenCentral()
}
dependencies {
api(project(":model"))
//implementation("org.springframework:spring-context:6.1.3")
implementation("org.springframework.boot:spring-boot-starter-web:3.2.2")
}
Thanks very much !
Cédric