Layered configuration in the Moderne CLI
One big challenge that comes with building LSTs for many repositories on many machines is configuration. What arguments do you need to build each repository? Are there Maven specific ones? Gradle specific ones? Do they change depending on the group of projects? How do you share these configurations with new people on the team?
JDK configuration in the Moderne CLI
By default, the Moderne CLI will try and detect what version of Java applies to a specific project and where the JDK is for said version. It will then pick the most optimal one when it goes to build each project.
How to install and configure the Moderne CLI in an air-gapped environment
If your company has restrictions on what you can access via the internet, you'll need to download and configure the Moderne CLI in a special way. This doc will walk you through everything you need to know for this. By the end, you will have the CLI downloaded and configured in your air-gapped environment.
How to execute user-supplied commands on a list of repositories
The Moderne CLI allows users to execute arbitrary commands on a list of repositories using the mod exec command. For example, the following CLI command will execute git status on each repository it finds under the current directory:
How to clone and synchronize organizations
If you've configured organizations in Moderne, you may find it useful to use the CLI to clone or synchronize them to your local machine.
On-prem source code management (SCM) server configuration
In order for Moderne to correctly map repository clone URLs to the right origin and path you will need to configure the base URL(s) for your SCM server. For SaaS SCM services like GitHub, GitLab, Bitbucket (cloud) and AzureDevOps – no extra configuration is required. For on-prem SCM servers, though, you will need to provide Moderne with additional information. Specifically the type, base URL, and any alternate URLs that are used to access the server.
How to speed up the Moderne CLI with parallelism
Depending on the number of repositories you have, it can take a long time to clone the repositories or run recipes against them.
How to improve recipe run times with mod afterburner
By default, every time you run a recipe against an LST, the full LST much be parsed and checked – even if no changes have been made against it. This results in recipes taking a decent amount of time to execute – regardless of how many times you've run recipes against the same LST or how complex those recipes are.
Configuring build steps
Out-of-the-box behavior without explicit configuration
How to update to the latest version of Moderne CLI
To update the CLI to a newer version, you will need to download the latest version and delete your old version.
SSH keys with passphrases
If you need to enter an SSH passphrase when you clone repositories, please follow the below instructions so that the Moderne CLI will work correctly for you.