Is the buildpack detector broken for monolithic JVM + Node apps?

I will try to provide as much context as possible.

Context

I have a pretty basic JHipster-generated application (Spring Boot + React, if it matters)

Node version is v20.15.0, java version is 21.

Locally, simply running ./mvnw works, my app starts correctly, I can connect and see my database.

I have a Procfile like so:

web: java $JAVA_OPTS -Xmx256m -jar build/libs/*.jar --spring.profiles.active=prod,koyeb

My application-koyeb is this:

eureka:
  instance:
    hostname: formatted-for-forum-post.koyeb.app
    non-secure-port: 8080
    prefer-ip-address: false

spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    url: ${JDBC_DATABASE_URL}
    username: ${JDBC_DATABASE_USERNAME}
    password: ${JDBC_DATABASE_PASSWORD}
    hikari:
      maximumPoolSize: 8
server:
  port: ${PORT:8080}

I have added a post-build command inside of Koyeb to try and make it work (but it doesn’t, with or without this command):

chmod +x ./mvnw && ./mvnw -Pprod clean verify

If I don’t include this post-build command, Koyeb reports at deployment stage that java command is not found.

If I do include the post-build command, Koyeb fails at build stage saying JAVA_HOME isn’t a thing for it.

Clearly, the problem is that heroky/jvm or anything like that is not getting installed at all.

I have a pom.xml file, a system.properties file, mvnw file etc. in my root folder. Sooo how come the detector isn’t detecting?

I have already tried to debug this myself by running:

pack build -B koyeb/builder formatted on my local machine. The process gets stuck at the detection stage.

So, my question is why buildpack java/jvm not automatically assigned as a detected needed buildpack, but most importantly, how do I fix this?

Thank you in advance for any advice you might have!

Hi!

Unfortunately, we do not support multi-language buildpack. This is why the Java buildpack is not picked up.

You can upvote for this feature here: Multi-language build | Voters | Koyeb