Skip to content

Cli tls command resolves to 3.29.3 version JBang plugin ignoring project stream #51119

@jcarranzan

Description

@jcarranzan

Describe the bug

I've discovered it in our CI Jenkins jobs from quarkus-test-framework here https://github.com/quarkus-qe/quarkus-test-framework/actions/runs/19468224426/job/55710153841?pr=1757

When working on a project explicitly pinned to the 3.20 stream, invoking the quarkus tls command triggers a JBang resolution that fetches the absolute latest version available in Maven Central (3.29.3 at the time of writing) instead of a version aligned with the project's platform (e.g., 3.20.x).

This behavior causes failures in CI environments for 3.20 branches, as the environment attempts to resolve the latest mainline artifacts that may have descriptor issues or incompatibilities with the LTS environment.

Note: I verified this behavior is reproducible using both the Quarkus CLI 3.20.4 runner and the latest upstream CLI. It appears to be a general behavior of the plugin discovery mechanism, ignoring the project stream.

Expected behavior

The CLI should detect the project is on stream 3.20 and resolve quarkus-tls-registry-cli to a version compatible with 3.20 (e.g., 3.20.4), similar to how extensions are managed.

Actual behavior

[ERROR] Failures: 
[ERROR]   QuarkusCliTlsCommandIT.generateCertificate:49 Quarkus tls command with arguments '[tls, generate-certificate, -c, Dumbledore, --name=dev-certificate, --password=quarkus, -d, /tmp/quarkus-tls-command-tests1758002273697099252/tls-command-test]' failed with output: [jbang] Resolving dependencies...
[jbang]    io.quarkus:quarkus-tls-registry-cli:3.29.3
[jbang] [ERROR] Could not read artifact descriptor for io.quarkus:quarkus-tls-registry-cli:jar:3.29.3
[jbang] Run with --verbose for more details. The --verbose must be placed before the jbang command. I.e. jbang --verbose run [...]
[ERROR]   QuarkusCliTlsCommandIT.generateQuarkusCa:32 Quarkus tls command with arguments '[tls, generate-quarkus-ca, --truststore, -r]' failed with output: [jbang] Resolving dependencies...
[jbang]    io.quarkus:quarkus-tls-registry-cli:3.29.3
[jbang] [ERROR] Could not read artifact descriptor for io.quarkus:quarkus-tls-registry-cli:jar:3.29.3
[jbang] Run with --verbose for more details. The --verbose must be placed before the jbang command. I.e. jbang --verbose run [...]
[ERROR]   QuarkusCliTlsCommandIT.runTestsUsingGeneratedCerts:72 Expected successful JVM build, but build command failed with output: [INFO] Scanning for projects...

How to Reproduce?

  1. java -jar quarkus-cli-3.20.4.jar create app my-lts-app --stream=3.20
    cd my-lts-app

  2. java -jar ../quarkus-cli-3.20.4.jar tls generate-quarkus-ca

The CLI ignores the local stream configuration and attempts to install/run the latest version from the registry:

Output of uname -a or ver

No response

Output of java -version

No response

Quarkus version or git rev

No response

Build tool (ie. output of mvnw --version or gradlew --version)

No response

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/cliRelated to quarkus cli (not maven/gradle/etc.)area/jbangIssues related to when using jbang.dev with Quarkuskind/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions