CommandBox : CLI, Package Manager, REPL & More
5.5.0
5.5.0
  • Introduction
  • About This Book
  • Authors
  • Overview
  • Release History
    • 5.x Versions
      • What's New in 5.4.2
      • What's New in 5.4.1
      • What's New in 5.4.0
      • What's New in 5.3.1
      • What's New in 5.3.0
      • What's New in 5.2.1
      • What's New in 5.2.0
      • What's New in 5.1.1
      • What's New in 5.1.0
      • What's New in 5.0.0
    • 4.x Versions
      • What's new in 4.8.0
      • What's New in 4.7.0
      • What's New in 4.6.0
      • What's New in 4.5.0
      • What's New in 4.4.0
      • What's New in 4.3.0
      • What's New in 4.2.0
      • What's New in 4.1.0
      • What's New in 4.0.0
    • 3.x Versions
      • What's New in 3.9.0
      • What's New in 3.8.0
      • What's New in 3.7.0
      • What's New in 3.6.0
      • What's New in 3.5.0
      • What's New in 3.4.0
      • What's New in 3.3.0
      • What's New in 3.2.0
      • What's New in 3.1.1
      • What's New in 3.0.1
      • What's New in 3.0.0
    • 2.x Versions
      • What's New in 2.2.0
      • What's New in 2.1.1
      • What's New in 2.1.0
      • What's New in 2.0.0
    • 1.x Versions
      • What's in 1.0.0
  • Getting Started Guide
  • Setup
    • Requirements
    • Download
    • Installation
    • Light and Thin Binaries
    • Non-Oracle JREs
    • Upgrading
    • Common Errors
  • Usage
    • Execution
      • Recipes
      • CFML Files
        • Using a DB in CFML scripts
      • OS Binaries
      • CFML Functions
      • Exit Codes
    • Commands
    • Parameters
      • Escaping Special Characters
      • File Paths
      • Globbing Patterns
      • Piping into Commands
      • Expressions
    • Command Help
    • Environment Variables
    • System Settings
    • System Setting Expansion Namespaces
    • Ad-hoc Command Aliases
    • Default Command Parameters
    • REPL
    • Tab Completion
    • Interactive Shell Features
    • forEach Command
    • watch Command
    • jq Command
    • printTable Command
    • sql Command
    • Auto Update Checks
    • Bullet Train Prompt
    • 256 Color Support
    • A Little Fun
  • IDE Integrations
    • Sublime Text
    • Visual Studio Code
  • Config Settings
    • Module Settings
    • Proxy Settings
    • Endpoint Settings
    • Server Settings
    • JSON Settings
    • Misc Settings
    • Task Runner Settings
    • Env Var Overrides
  • Embedded Server
    • Multi-Engine Support
    • ModCFML Support
    • Server Versions
    • Start HTML Server
    • Offline Server Starts
    • Debugging Server Starts
    • Server Processes
    • Manage Servers
    • FusionReactor
    • Server Logs
    • Server Scripts
    • Configuring Your Server
      • Server Profiles
      • Server Rules
        • Baked in Rules
        • Allowed Static Files
        • Rule Language
        • Custom Predicates/Handlers
        • Rule Examples
        • Debugging Server Rules
      • Server Port and Host
      • Proxy IP
      • SSL Certs
      • HTTPS Redirect/HSTS
      • URL Rewrites
      • Aliases
      • Custom Error Pages
      • Welcome Files
      • Basic Authentication
      • Custom Java Version
      • Adding Custom Libs
      • GZip Compression
      • REST Servlet
      • Performance Tuning
      • Undertow Options
      • Custom Tray Menus
      • JVM Args
      • Ad-hoc Env Vars
      • Ad-Hoc Java System Properties
      • server.json Env Var overrides
      • Server Home
      • web.xml Overrides
      • Experimental Features
    • External Web Server
    • Starting as a Service
    • Single Server Mode
    • Server.json
      • Working with server.json
      • Packaging Your Server
      • Using Multiple server.json Files
  • Package Management
    • Installing Packages
      • Installation Path
      • Installation Options
      • Advanced Installation
    • Private Packages
    • System Modules
    • Code Endpoints
      • ForgeBox
      • HTTP(S)
      • File
      • Folder
      • Git
      • Java
      • S3
      • CFLib
      • Jar (via HTTP)
      • Lex (via HTTP or File)
      • Gist
    • Package Scripts
    • Dependencies
    • Semantic Versioning
    • Updating Packages
    • Creating Packages
      • Editing Package Properties
      • Publishing Lucee Extensions to ForgeBox
    • Artifacts
    • Box.json
      • Basic Package Data
      • Extended Package Data
      • Package URLs
      • Installation
      • Embedded Server
      • Dependencies
      • TestBox
    • Managing Version
  • Task Runners
    • Task Anatomy
    • BaseTask Super Class
    • Task Target Dependencies
    • Passing Parameters
    • Using Parameters
    • Task Output
      • Printing tables
    • Lifecycle Events
    • Threading/Async
    • Task Interactivity
    • Shell Integration
    • Downloading Files
    • Running Other Commands
    • Error Handling
    • Hitting Your Database
    • Sending E-mail
    • Interactive Jobs
    • Watchers
    • Property Files
    • Running other Tasks
    • Loading Ad hoc Jars
    • Loading Ad-hoc Modules
    • Cancel Long Tasks
    • Progress Bar
    • Caching Task Runners
  • Helpful Commands
    • Token Replacements
    • Checksums
    • Code Quality Tools
    • ask and confirm
  • Deploying CommandBox
    • Github Actions
    • Docker
    • Heroku
    • Amazon Lightsail
  • TestBox Integration
    • Test Runner
    • Test Watcher
  • Developing For CommandBox
    • Modules
      • Installation and Locations
      • Configuration
        • Public Properties
        • Configure() Method
        • Lifecycle Methods
      • Conventions
      • User Settings
      • Linking Modules
    • Commands
      • Aliases
      • Using Parameters
        • Using File Globs
        • Dynamic Parameters
      • Command Output
      • Tab Completion & Help
      • Interactivity
      • Watchers
      • Shell integration
      • Running Other Commands
      • Error handling
      • Watchers
      • Loading Ad hoc Jars
    • Interceptors
      • Core Interception Points
        • CLI Lifecycle
        • Command Execution Lifecycle
        • Module Lifecycle
        • Server Lifecycle
        • Error Handling
        • Package Lifecycle
      • Custom Interception Points
    • Injection DSL
    • Example Project
    • FusionReactor for the CLI
  • ForgeBox Enterprise
    • Introduction
    • Storage
    • Commands
      • List
      • Register
      • Login
      • Set Default
      • Remove
    • Usage
Powered by GitBook
On this page
  • Multi-Server
  • ForgeBox 2.0 API
  • Semantic Versioning support
  • Create user from CLI
  • Publish packages from the CLI
  • Interceptor-based CLI scripts
  • Have Fun
  • Release Notes
  • Bug
  • New Feature
  • Task
  • Improvement

Was this helpful?

Edit on GitHub
Export as PDF
  1. Release History
  2. 3.x Versions

What's New in 3.1.1

PreviousWhat's New in 3.2.0NextWhat's New in 3.0.1

Last updated 3 years ago

Was this helpful?

Multi-Server

Now CommandBox will not only start up Lucee 4 servers with a single command, but you can start up Adobe ColdFusion, Railo, and even Luce 5 servers all at the same time. Now it's easier than ever to test your code across multiple platforms. CommandBox's embedded server makes for a fast and easy development machine too regardless of what CF engine you need.

# Start the latest stable Railo engine
CommandBox> start cfengine=railo

# Start a specific engine and version
CommandBox> start cfengine=adobe@10.0.12

# Start any Java WAR
CommandBox> start WARPath=/var/www/myApp.war

ForgeBox 2.0 API

We'v released a brand new site with a new UI, fresh features, and a shiny new API. CommandBox 3.1.1 is now powered by the new ForgeBox site and API which includes features like having more than one version for a package.

Semantic Versioning support

# A specific version
CommandBox> install foo@1.2.3

# Any version with a major number of 4 (4.1, 4.2, 4.9, etc)
CommandBox> install foo@4.x

# Any version greater than 1.5.0
CommandBox> install foo@>1.5.0

# Any version greater than 5.2 but less than or equal to 6.3.4
CommandBox> install "foo@>5.2 <=6.3.4"

Create user from CLI

CommandBox> forgebox register

Publish packages from the CLI

You no longer need to visit the ForgeBox web site to publish new or updated packages to ForgeBox. This is all available from the CLI once you've logged in. This means you can even automate the process of publishing to cut down on the number of manual steps it takes you to update your projects and share those changes with the community.

CommandBox> forgebox publish

Interceptor-based CLI scripts

You can now run commands of your choosing automatically when certain events in the CLI happen (like publishing a package, or starting a server). You can also create ad-hoc collections of commands to run whenever you want to help automate things like building your projects or publishing to ForgeBox.

{
  "name" : "My Package",
  "slug" : "my-package",
  "version" : "1.0.0",
  "scripts" : {
   "postVersion" : "package set location='gitUser/gitRepo#`package version`'"
   "postPublish" : "!git push"
  }
}

Have Fun

Release Notes

Bug

New Feature

Task

Improvement

When you install packages from , you can use fancy semver ranges to specify the versions of a package you're willing to install. CommandBox will automatically grab the latest version that satisfies your version range. This also applies to the "update" command which makes keeping your projects' dependencies up-to-date even easier.

Another feature of the new site is the ability to create a new ForgeBox user right from the CLI. After creation, you'll be logged in with your ForgeBox API Key which let's you update your packages.

We hope you enjoy playing with the new features. As always, jump on our , or the with any questions or feedback. And remember, we provide tools like CommandBox CLI free of charge to the community as . If you have specific needs in the form of features or training for your team, Ortus is here to help you. with any questions.

[] - CFML Function commands do not work on recipes

[] - box update pulling down dev dependencies

[] - Exception in packageservice determining testbox slug runner

[] - Git clone doesn't obey commit hash

[] - tail command doesn't handle CR and LF correclty

[] - Linux: CommandBox 3.1.0-1: Fails to start

[] - Linux distros: /usr/bin/box created with wrong permissions

[] - Progress bar errors if console is too small

[] - Slug auto-complete doesn't work with ForgeBox 2.0

[] - "forgebox search" doesn't work with ForgeBox 2.0

[] - bump command creates invalid version if it starts blank.

[] - CF servers create WEB-INFcfform directory in server root

[] - Start server on any engine

[] - ForgeBox 2 API Integration

[] - forgebox register command

[] - forgebox login command

[] - forgebox publish command

[] - Creation of API Docs for internal CommandBox Core

[] - Update S3 Sync for CommandBox to publish core API Docs

[] - Update the coldbox create command to make the skeleton be a 'name,git+url,http' endpoint

[] - Add command to output system log file

[] - Allow forgebox downloadURL to be any endpoint ID

[] - Allow a package to have listener scripts run by convention

[] - Add pre/postVersion, pre/postPublish interception points

[] - Allow interactive shell (scripts/recipes) to have more than one command per line

[] - bump command tags and commits Git repo if present

[] - Global default for server settings

[] - New Icons for Multi-Engine taskbars

[] - Ability to run ad-hoc scripts

[] - Track installs in ForgeBox 2.0 API

[] - Add onServerInstall interception point for addition engine config

[] - Allow server set/show/clear to target a custom JSON file

[] - Missing 'models' namespace on model test creation

[] - Update Adobe CFEngine wars to have latest updates

[] - Return with exit code 1 when things fail

[] - Add ability to use environment variables to supply java args for BOX itself

[] - install my-module installs unneeded devDependencies

[] - Add ability to specify a server.json by path

[] - Modify build to include sdk format of Unix binary

[] - Improve error message when using "box" from interactive shell

[] - Convert all existing ForgeBox calls to new API format.

[] - Improve messaging and logging when errors connecting to Forgebox

[] - Enhance semver logic for satisfying versions

[] - Allow param completion UDF to see typed text

[] - Capture full java exception stack from Jgit errors

[] - Convert CF Engine downloads to S3/ForgeBox

[] - Fix right click options on server tray icon to be non-Lucee

[] - Allow masking of user input

[] - Auto-correct rewritesEnabled to be rewritesEnable in the start command

[] - Update module scaffolding to create in modules_app folder.

[] - Make help for commands more intuitive

[] - Don't create init methods for models if included in the method list

[] - Switch create controller command to create handler command

ForgeBox
ForgeBox
mailing list
CFML slack team
professionally-supported
open source
Contact us
COMMANDBOX-347
COMMANDBOX-348
COMMANDBOX-350
COMMANDBOX-351
COMMANDBOX-357
COMMANDBOX-360
COMMANDBOX-361
COMMANDBOX-367
COMMANDBOX-368
COMMANDBOX-369
COMMANDBOX-384
COMMANDBOX-392
COMMANDBOX-77
COMMANDBOX-216
COMMANDBOX-335
COMMANDBOX-336
COMMANDBOX-337
COMMANDBOX-353
COMMANDBOX-354
COMMANDBOX-355
COMMANDBOX-358
COMMANDBOX-364
COMMANDBOX-371
COMMANDBOX-372
COMMANDBOX-373
COMMANDBOX-374
COMMANDBOX-376
COMMANDBOX-379
COMMANDBOX-382
COMMANDBOX-385
COMMANDBOX-393
COMMANDBOX-394
COMMANDBOX-352
COMMANDBOX-383
COMMANDBOX-293
COMMANDBOX-338
COMMANDBOX-341
COMMANDBOX-345
COMMANDBOX-346
COMMANDBOX-349
COMMANDBOX-359
COMMANDBOX-362
COMMANDBOX-366
COMMANDBOX-370
COMMANDBOX-375
COMMANDBOX-377
COMMANDBOX-378
COMMANDBOX-380
COMMANDBOX-381
COMMANDBOX-387
COMMANDBOX-388
COMMANDBOX-389
COMMANDBOX-390
ForgeBox.io