gg.cmd is a cross-platform and cross-architecture command-line interface (CLI) that acts as an executable wrapper for various tools such as Gradle, JDK/JVM, Node.js, and Java. It requires minimal dependencies and is similar in functionality to gradlew.
Install with bash (wget):
wget ggcmd.io/gg.cmd
Install with bash (curl):
curl ggcmd.io > gg.cmd
Install with PowerShell:
wget ggcmd.io -OutFile gg.cmd
or
Download the latest release
Install?
The concept involves placing a copy of gg.cmd in the root directory of your project.
This is similar to what you would do with gradlew
or mvnw
, except this method is applicable to multiple tools.
As a result, your colleagues would not have to install anything on their host machines.
- Simplify the management of other executables in your project
- Automatically detect and execute the required executable version using project configuration files (such
as
package.json
for Node.js projects) - Support for chaining multiple executables (e.g.
gradle@6:java@17
) - Cross-platform compatibility (Windows, macOS, and Linux)
- Cross-architecture compatibility (x86_64 and ARM)
- Fast and lightweight
Installs tool locally in a folder called .cache
. Global install not supported.
Adds every dependency into PATH
before executing.
Using gg.cmd is easy. Simply place the executable in the root of your project and run it with the gg.cmd
command
followed
by the desired executable and its required dependencies:
./gg.cmd [gg options] <executable name>@<version><+include_tags><-exclude_tags>:<dependent executable name>@<version><+include_tags><-exclude_tags> [executable arguments]
sh gg.cmd npm install
x86_64 | arm64 | |
---|---|---|
Linux | ✓ | ✓ |
macOS | ✓ | |
Windows | ✓ |
Supports distributionUrl
in gradle-wrapper.properties
and gradle.properties
.
Supports distributionSha256sum
in gradle-wrapper.properties
.
You can replace gradlew with a single gg.cmd and can delete these files:
- gradle/wrapper/gradle-wrapper.jar
- gradle/wrapper/gradle-wrapper.properties
- gradlew
- gradlew.bat
Version from:
distributionUrl
ingradle/wrapper/gradle-wrapper.properties
distributionUrl
ingradle.properties
Download URL from:
distributionUrl
ingradle/wrapper/gradle-wrapper.properties
distributionUrl
ingradle.properties
Version from:
engines
inpackage.json
- Contents of
.nvmrc
Version from:
jdkVersion
ingradle/wrapper/gradle-wrapper.properties
jdkVersion
ingradle.properties
Here are a few examples of how gg.cmd can make your life easier:
./gg.cmd gradle build
./gg.cmd node@14
./gg.cmd gradle@6:java@17 clean build
./gg.cmd npm init -y
./gg.cmd npx create-react-app my-app
cp gg.cmd my-app
cd my-app
./gg.cmd npm start
We welcome contributions to gg.cmd. If you have an idea for a new feature or have found a bug, please open an issue on the GitHub repository.
gg.cmd is licensed under the MIT License. See LICENSE for more information.