Defining a new JDK capability

A JDK must be installed, and defined in Bamboo as a capability, before Bamboo can make use of it when building jobs.

At least one JDK was automatically defined when you installed Bamboo. You can define additional JDK capabilities that are:

Once you have defined a new JDK capability in your Bamboo system, its label (e.g. 17) will appear in the Build JDK list when you configure a job's builder (see Configuring tasks). The JDK you select will be used for every one of that job's builds. That is, the job can only be built by agents which have a JDK capability whose label is specified in the job's Build JDK field.

(info) Note that if an agent has its own specific JDK capability, that value will override the value of a shared JDK capability of the same name (if one exists).

On this page:

Defining a JDK capability on an agent

To define a new agent-specific JDK capability:

  1. From the top navigation bar select Adminitration > Build resources > Agents.
  2. Select the name of the required agent.
  3. Go to the Capabilities tab, and then Add capability.
  4. Select Capability type JDK.
  5. In the JDK label field, type a name/label for the JDK. Bamboo displays this in the Build JDK list whenever a job's builder is configured.
  6. In the Java home field, type the location of the JDK Home Directory.
  7. Select Add.

Defining a shared remote JDK capability

Shared remote JDK capabilities are not shared with elastic agents.

To define a new shared remote JDK capability:

  1. From the top navigation bar select cogwheel icon > Build resources > Agents Shared remote capabilities.
  2. Select Capability type > JDK.
  3. In the JDK Label field, type a name/label for the JDK. Bamboo Bamboo displays this in the Build JDK list whenever a job's builder is configured.
  4. In the Java Home field, type the location of the JDK Home Directory.
  5. Select Add.

Notes

  • Configuring generic JDK capabilities — If you want to indicate that an agent is capable of running builds for a set of related JDKs (e.g. all point versions of JDK 17), you set up generic JDK capabilities to encompass these JDKs.
    For example, you can set up the following JDK capabilities for your Bamboo agent(s):
    • JDK (where 'JDK Label' = 'JDK' and 'Java Home' = '/usr/java/jdk17.0_07') — this JDK capability indicates that an agent(s) is capable of running builds with any JDK requirement.
    • JDK 17 (where 'JDK Label' = 'JDK 17' and 'Java Home' = '/usr/java/jdk17.0_07') — this JDK capability indicates that an agent(s) is capable of running builds with a JDK 17 requirement or any point version of JDK 17, e.g. 17.0_07, 17.0_08, etc.
    • JDK 17.0_07 (where 'JDK Label' = 'JDK 17.0_07' and 'Java Home' = '/usr/java/jdk17.0_07') — this JDK capability indicates that an agent(s) is only capable of running builds with a JDK 17.0_07 requirement.
  • If you wish to find redundant JDK capabilities, you can view the list of JDK capabilities set up in Bamboo and delete any unwanted JDK capabilities.
     
  • Automatically defined capabilities – This depends on the system environment variables (e.g. 'JAVA_HOME=/opt/java/java_sdk17') that were present on the machine on which Bamboo was installed:
    • On the Bamboo server, environment variables that were present during installation were saved as shared local capabilities in Bamboo.
    • On remote agents, environment variables that were present during installation were saved as agent-specific capabilities in Bamboo.
Last modified on Aug 13, 2024

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.