Installing Packages
The install command is used to tell CommandBox what you want. Here we ask for the stable release of the ColdBox MVC Platform. "coldbox" is the name of the ForgeBox slug.
Packages should always have a box.json
descriptor file inside them. This is especially true of packages installed from endpoints other than Forgebox since they don't have any other metadata available. CommandBox will install any zip file even if it doesn't have a box.json
, but this isn't ideal since the name, version, and type of the package must be guessed in that instance.
If you find a package on the internet that doesn't have a box.json
, please contact the maintainer and request that they add one or submit a pull request!
ForgeBox Semantic Versioning Support
ForgeBox supports semantic version ranges for installing packages. Here are some examples:
box.json version constraint
When installing a ForgeBox package, which is not currently installed, but IS defined already in the box.json
with a semantic version range, you will not get the very latest version of that package, but whatever version satisfies the version range in the box.json
.
So if you were to seed your box.json
with the following:
and then run either
or
You would get the latest version of ColdBox that satisfies the range ^4.1.0
.
Install Process
When you install a package, here are the steps that are taken. Most all of this should be evident by the output streamed to the console during the install process. To get even more juicy details, use the --verbose
flag while installing.
CommandBox inspects the ID passed to the
install
command to determine the endpoint to use.The matching endpoint is asked to fetch the package represented by the ID.
For example, the ForgeBox endpoint checks the local artifact cache and possibly downloads the package.
If ForgeBox is offline, the best match package will be looked for in your artifacts.
The package is unzipped and its
box.json
is readInstallation directory is finalized
Contents of package are copied based on the
ignore
and--production
flagThe package is saved as a dependency in the root box.json
The package's dependencies are installed
Last updated