• Stars
    star
    5,872
  • Rank 6,895 (Top 0.2 %)
  • Language Gherkin
  • License
    Apache License 2.0
  • Created over 12 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The SDKMAN! Command Line Interface

SDKMAN! CLI

The Software Development Kit Manager Command Line Interface

Backers on Open Collective Sponsors on Open Collective Slack

SDKMAN is a tool for managing parallel Versions of multiple Software Development Kits on any Unix based system. It provides a convenient command line interface for installing, switching, removing and listing Candidates.

See documentation on the SDKMAN! website.

Installation

Open your favourite terminal and enter the following:

$ curl -s https://get.sdkman.io | bash

If the environment needs tweaking for SDKMAN to be installed, the installer will prompt you accordingly and ask you to restart.

Running the Cucumber Features

All SDKMAN's BDD tests describing the CLI behaviour are written in Cucumber and can be found under src/test/resources/features. These can be run with Gradle by running the following command:

$ ./gradlew test

To perform development, you will need to have a JDK 8 or higher installed which can be obtained by running the following after installing SDKMAN:

$ sdk install java

Using Docker for tests

You can run the tests in a Docker container to guarantee a clean test environment.

$ docker build --tag=sdkman-cli/gradle .
$ docker run --rm -it sdkman-cli/gradle test

By running the following command, you don't need to wait for downloading Gradle wrapper and other dependencies. The test reports can be found under the local build directory.

$ docker run --rm -it -v $PWD:/usr/src/app -v $HOME/.gradle:/root/.gradle sdkman-cli/gradle test

Local Installation

To install SDKMAN locally running against your local server, run the following commands:

$ ./gradlew install
$ source ~/.sdkman/bin/sdkman-init.sh

Or run install locally with Production configuration:

$ ./gradlew -Penv=production install
$ source ~/.sdkman/bin/sdkman-init.sh

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

More Repositories

1

sdkman-cli-native

The next generation of SDKMAN! CLI commands, written in Rust
Rust
142
star
2

sdkman-db-migrations

Database migrations for the sdkman API
Scala
71
star
3

sdk

The next generation of SDKMAN! written in golang
Go
44
star
4

homebrew-tap

Ruby
31
star
5

sdkman-java-sdk

An sdk for the Groovy enVironment Manager (GVM)
Groovy
24
star
6

sdkman-action

SDKMAN! GitHub Action
23
star
7

sdkman-extensions

SDKMAN! Extension Commands
Shell
16
star
8

sdkman-vendor-gradle-plugin

A plugin for Gradle to allow Vendors to release Candidate Versions on SDKMAN!
14
star
9

sdkman-candidates

The Candidates service that under-girds SDKMAN! CLI.
Scala
9
star
10

sdkman-disco-integration

Java
9
star
11

sdkman-vendor-maven-plugin

Maven Plugin for SDKMAN Vendors
Java
8
star
12

vendor-proxy

The API used by Vendors to Create and Announce their new Releases.
Scala
7
star
13

sdkman-hooks

An API responsible for serving up pre- and post- hooks
Scala
5
star
14

vendor-release-legacy

The SDKMAN! Vendor Release microservice.
Scala
5
star
15

sdkman-broadcast

The SDKMAN! REST API service for Broadcasting
Groovy
4
star
16

sdkman-gui

A Griffon GUI for GVM
Groovy
3
star
17

sdkman-candidates-legacy

The main candidate service for SDKMAN!
Shell
3
star
18

sdkman-db-crawler

Application that scours the mongodb Versions collection for invalid URL resources
Scala
1
star
19

vendor-announce

SDKMAN Vendor API for announcing new broadcast messages
Groovy
1
star
20

sdkman-persistent-model

Persistent model for SDKMAN as Scala case classes
Scala
1
star
21

sdkman-mongodb-persistence

Microlibrary to be used in SDKMAN microservices for mongodb persistence.
Scala
1
star
22

sdkman.github.io

The SDKman website
TypeScript
1
star
23

vendor-release

The Vendor Release API, supporting Universal and Multi-Platform Vendor Releases
Gherkin
1
star
24

sdkman-state

Exposes candidates and versions through a JSON API
Kotlin
1
star