Command Help v0.8.9
Raw command-line help syntax and options for Nuts commands.
This page contains the raw command-line help output for nuts. For curated explanations with tables and examples, see Nuts Commands.
1 nuts
nuts is a Java™ Package Manager that helps discovering, downloading, assembling and executing
local and remote artifacts (packages) in a very handy way. Unlike maven which resolves dependencies at compile time,
nuts solves dependencies at install time and, as a result, saves disk and bandwidth by downloading and caching
only libraries required for the current environment. Nuts is unique in that it reuses maven and other build tool
descriptor formats to solve dependency graph, and does not, whatsoever, have any requirement on existing
maven created packages.
Nuts stands for Network Updatable Things Services tool. It's designed to support multiple package formats and even
multiple languages (platforms like dotnet and python), even-though, the current implementation supports only java.
nuts artifacts are stored into repositories. A repository may be local for storing local nuts
or remote for accessing remote artifacts (good examples are remote maven repositories). It may
also be a proxy repository so that remote artifacts are fetched and cached locally to save network
resources.
One manages a set of repositories called a workspace (analogous to pip 'virtualenv'). Managed packages
(artifacts) have descriptors that depict dependencies between them. This dependency is seamlessly handled by nuts
to resolve and download and cache on-need dependencies over the wire.
nuts is a swiss army knife tool as it acts like (and supports) maven build tool to have an abstract
view of the the artifacts dependency and like zypper/apt-get/pip/npm package manager tools
to install and uninstall artifacts allowing multiple versions of the very same artifact to be installed.
Although nuts focuses on Java™ artifacts, it still supports, by design, native and all non Java™ artifacts.
Dependencies are fetched according to the current operating system type, distribution and hardware
architectures.
nuts works either as standalone application or as Java™ library to enable dynamic and dependency
aware class loading and brings a rich toolset to provide a versatile portable command line tools such
as nsh (a bash like shell), tomcat, derby ... wrapper tools to make it easier providing
development , test and deployment reproducible environments.
With container concepts in mind, nuts is the perfect Java™ application tool for Docker, CoreOs
and other container engines.
##) COMMON VERBS:
install,uninstall,update : install/uninstall/update an artifact (using its fetched/deployed installer)
fetch,push : download, upload to remote repositories
search : search for existing/installable artifacts
exec : execute an artifact (tool)
deploy, undeploy : manage artifacts on the local repositories
##) SYNOPSIS:
nuts [<-options>]... <command> <args> ...
##) VERSIONS:
Boot API Version: ${nuts.workspace-boot.version}
Boot Runtime Version: ${nuts.workspace-runtime.version}
Java™ Version: ${java.version} (${java.vm.name})
##) NUTS OPTIONS:
There are four (4) types of options :
* create options
* create exported options
* open options
* open exported options
create options are considered solely when creating a new workspace. They will be persisted then (to the configuration file)
but they will be ignored elsewhere if the workspace already exists : configured parameters will be in use.
create exported options are considered both when creating a new workspace and when running it. If they are specified in creation
they will be persisted. If they are specified later they will override persisted values without persisting the changes
open options are transient (non persistent) options that will override any configured value (if any) and will be
in use in the current process (and ignored elsewhere). Such options will be considered in creating workspaces
as well but still they are not persistent.
open exported options are open (so transient, non persistent) options that will override any configured value (if any)
having the ability to be exported to any Java™ child process (as system property -D...)
###) NUTS CREATE EXPORTED OPTIONS:
--workspace <workspace-location> (default is "" ad is equivalent to "default-workspace")
-w <workspace-location>
workspace location to open (or create).
this defaults to default-workspace. Typically this refers to ~/.config/nuts/default-workspace on *NIX Platforms*
(when --system-conf-home is not specified). workspace location contains mainly config information.
--user <username> (default is "")
-u <username>
workspace username.
if not specified, all access to nuts will be with anonymous identity. so to promote user privileges, one may
specify user credentials (see --password )
--password <password> (default is "")
-p <password>
workspace password.
They must be provided when --user is present.
-V <boot-api-version> (default is "" and points to the currently loaded api version)
--boot-version <boot-api-version>
--boot-api-version <boot-api-version>
run a new/different instance of nuts with the specified version
--sandbox=true|false (default is false )
when creating the workspace, generate a random workspace, for testing purposes.
sandbox mode will be propagated/exported as --confined
--in-memory (default is false )
run the workspace entirely in memory without disk persistence.
--confined=true|false (default is false )
use a confined workspace that does not allow user wide or system wide alteration
--isolation-level=system|user|confined|sandbox|memory (default is system )
use the level of isolation for the workspace
--boot-runtime <runtime-id-or-version> (default is "" and points to the latest compatible nuts-runtime artifact)
load runtime (nuts-runtime) version. either version may be expressed or full nuts implementation
(other than nuts-runtime) should be defined
--java <java-command> (default is "" and points to the currently loaded JVM executable)
--boot-java <java-command>
-j <java-command>
Java™ command to run new instance of nuts
--java-home <java-home> (default is "" and points to the currently loaded JVM)
--boot-java-home <java-home>
-J <java-home> (default is "")
Java™ home to run new instance of nuts. When Java™ command is present, this will be ignored.
--java-options <java-options> (default is "")
--boot-java-options <java-options>
-J <java-options>
Java™ options to run new instance of nuts
###) NUTS CREATE OPTIONS:
--archetype <archetype-name> (default is "default")
-A <archetype-name>
workspace archetype to create (if workspace not found).
when opening a non existing workspace, nuts will create it
using the default archetype. Supported archetypes are :
default : should handle most cases. Will create 6 repositories
local : containing local nuts (java and non java nuts).
maven-local : referencing ~/.m2/repository local maven repository.
maven-central : referencing https://repo.maven.apache.org/maven2/ (with cache support).
system : referencing global (root, system wide) repository if available.
This list can be altered using --repos options, using =, + and - modifiers.
When you use --repos=+spring, or simply --repos=spring the spring repos will be appended to this list
When you use --repos=-maven-central,system, you will disable both maven-central and system
When you use --repos==maven-central, this list is totally replaced by 'maven-central'
minimal : will create an almost empty workspace with a single nuts local repository and no users.
You should use it in conjunction with --boot-repos options to enable a valid location from.
This list is not altered using "--repos" options, using '=', '+' and '-' modifiers.
which nuts would be downloaded as well.
server : will create an almost empty workspace with a single nuts local repository
and a couple of users guest (read support) and contributor (write support).
You should use it in conjunction with --boot-repos options to enable a valid location from
which nuts would be downloaded as well.
--store-strategy <store-strategy> (default is "exploded" for names and "standalone" for paths)
Define store strategy used for persisting configuration and data of the workspace.
Valid values of <store-strategy> are exploded, standalone.
exploded : use distinct folders for temp, var, lib, config ... folders (this is the default)
standalone : use a self contained folder for all types of data of the workspace. This is interesting for sharing
workspaces across multiple machines.
If the workspace location (in --workspace option) is a simple name (without '/'), the store strategy
defaults to exploded. In all other cases, it defaults to standalone
-S
--standalone (default is true for path based workspaces)
will boot with standalone strategy so that all files will be stored in the workspace folder
overriding workspace config. same as --store-strategy standalone
--exploded-workspace (default is true for name based workspaces)
will boot with exploded strategy so that all file will be stored distinct folders (cache, and log)
particularly will be stored elsewhere depending on on configuration.
same as --store-strategy exploded
--repo-store-strategy <store-strategy> (default is exploded for name based workspaces)
Defines store strategy used for persisting config and data of the repositories.
Valid values of <store-strategy> are exploded, standalone.
exploded : use distinct folders for temp, var, lib, config ... folders (this is the default)
standalone : use a self contained folder for all types of data of the repository (under repository's main folder).
This is interesting for sharing workspaces across multiple machines.
--standalone-repositories (default false)
for newly created repos, will boot with standalone strategy so that all file will be stored in the repository's folder
overriding workspace config. same as --repo-store-strategy standalone
--exploded-repositories (default true)
for newly created repos, boot with exploded strategy so that all file will be stored distinct folders (cache, and log)
particularly will be stored elsewhere depending on on configuration.
same as --repo-store-strategy exploded (this is default)
--standalone (default false if the workspace location is a simple name, and true if not)
Equivalent of --standalone-workspace
--exploded (default true if the workspace location is a simple name, and false if not)
Equivalent of --exploded-workspace
--store-layout <store-layout> (default use system layout)
Defines store layout relatively to the running operating system. This resolves root locations of data folders.
That is to say that all 'config' folders for instance will be located at the location defined by the layout.
Valid values of <store-layout> are system, windows, linux, macos and unix
system : resolve the running operating system (windows, linux, ...) and select appropriate folder
windows : always use windows layout (even if running on iOS)
linux : always use linux layout (even if running on windows)
unix : always use linux/unix layout (even if running on windows)
macos : always use macos layout (even if running on windows)
Data folders of nuts are :
conf : configuration/settings files folder. equivalent to XDG spec's XDG_CONFIG_HOME folder defined as
"base directory relative to which user-specific configuration files should be written"
bin : executable binaries folder. Equivalent to linux's '/bin' folder. It's defined as
"base directory relative to which reusable executable applications and scripts should be written"
lib : non executable binaries (libraries) folder. Equivalent to linux's '/usr/lib' folder. It's defined as
"base directory relative to which reusable libraries should be written"
var : data files folder. More or less related to XDG spec's XDG_DATA_HOME folder. It's defined as
"the base directory relative to which user-specific non executable data files should be stored"
log : log/trace files folder. Equivalent to XDG_LOG_HOME a non standard XDG variable defined as
"the base directory relative to which application non-essential data for trace and monitoring
should be stored"
cache : cache folder. Equivalent to XDG spec's XDG_CACHE_HOME folder defined as
"the base directory relative to which user-specific non-essential data files should be stored"
temp : temporary files folder. Equivalent to user/system temp folder defined as
"the base directory relative to which application temporary data should be stored"
run : run folder. Equivalent to to XDG spec's XDG_RUNTIME_HOME bin folder defined as
"the base directory relative to which user-specific non-essential runtime files and other
file objects (such as sockets, named pipes, ...) should be stored"
In the Windows layout, default (home) locations resolve to ($HOME is the user's home folder)
conf : "$HOME/AppData/Roaming/nuts/conf"
bin : "$HOME/AppData/Roaming/nuts/bin"
lib : "$HOME/AppData/Roaming/nuts/lib"
var : "$HOME/AppData/Roaming/nuts/var"
log : "$HOME/AppData/Roaming/nuts/log"
cache : "$HOME/AppData/Local/nuts/cache"
temp : "$HOME/AppData/Local/nuts/temp"
run : "$HOME/AppData/Local/nuts/run"
In the Linux/Unix/MacOS layout, default locations resolve (according to XDG Base Directory Specification)
to ($HOME is the user's home folder)
conf : "$HOME/.config/nuts"
bin : "$HOME/.local/share/nuts/apps"
lib : "$HOME/.local/share/nuts/lib"
var : "$HOME/.local/share/nuts/var"
log : "$HOME/.local/log/nuts"
cache : "$HOME/.cache/nuts"
temp : "$java.io.tmpdir/$username/nuts"
run : "/run/user/$USER_ID/nuts"
These home locations are tuned individually using the following options
--system-conf-home <path>
--system-bin-home <path>
--system-lib-home <path>
--system-var-home <path>
--system-log-home <path>
--system-cache-home <path>
--system-temp-home <path>
--system-run-home <path>
--<os-family>-conf-home <path>
--<os-family>-bin-home <path>
--<os-family>-lib-home <path>
--<os-family>-var-home <path>
--<os-family>-log-home <path>
--<os-family>-cache-home <path>
--<os-family>-temp-home <path>
--<os-family>-run-home <path>
where <os-family> in one of windows, linux, unix, macos or system.
This helps moving workspace folder from/to distinct os families while providing a centralized configuration.
when using system OS family, the effective OS family will be detected at runtime.
--system-layout or --system(default behaviour)
will use current system layout to resolve folder candidates for log,config,apps ....
same as sh --store-layout<store-layout> system
--windows-layout (default is true on windows systems)
will use windows layout to resolve folder candidates for log,config,apps ....
same as --store-layout <store-layout> windows
--linux-layout (default is true on linux systems)
will use linux/unix layout to resolve folder candidates for log,config,apps ....
same as --store-layout <store-layout> linux
More tuning of these folders may be done by defining the folders location directly
instead of the folder's home locations using the following options :
--bin-location <path>
--lib-location <path>
--config-location <path>
--var-location <path>
--log-location <path>
--temp-location <path>
--cache-location <path>
--run-location <path>
--install-companions or -k (default is false)
install companion tools.
--switch (default is false)
When creating a new workspace, by default, only default workspace (--workspace="") updates .bashrc file
(or equivalent, according to the current installed and used shell) to point to that workspace. So that, when you
type nuts It's that workspace that is used. You can change choose to "switch" the binding to the currently
created workspace by arming this flag.
--init-scripts (default is true for default archetype)
When creating a new workspace, you can select to enable or disable creation of os shell scripts to point to nuts
and other installed artifacts using --!init-scripts flag.
--init-launchers (default is true for default archetype)
When creating a new workspace, you can select to enable or disable creation of menus and desktop icons by using
--!init-launchers flag. This option implies --init-scripts
--init-java (default is true for default archetype)
When creating a new workspace, you can select to enable or disable registration of installed JDK/JRE in the system
by using --!init-java flag. This option implies --init-scripts
--init-platforms (default is true for default archetype)
When creating a new workspace, you can select to enable or disable registration of installed platforms (including
java) in the system by using --!init-platforms flag. This option implies --init-java
) NUTS OPEN EXPORTED OPTIONS:
--global or -g (default is false)
use root/system wide workspace instead of user's own workspace.
requires admin privileges.
shared/system workspace is located at :
Windows : "$ProgramFiles/nuts/default-workspace"
Linux/Unix : "/usr/share/nuts/default-workspace"
More generally folder homes are defines as follows :
Windows Layout :
bin : "$ProgramFiles/nuts"
lib : "$ProgramFiles/nuts"
conf : "$ProgramFiles/nuts"
var : "$ProgramFiles/nuts"
log : "$ProgramFiles/nuts"
temp : "$TMP/nuts"
cache : "$ProgramFiles/nuts"
run : "$ProgramFiles/nuts"
Linux Layout :
bin : "/opt/nuts/bin"
lib : "/opt/nuts/lib"
conf : "/etc/opt/nuts"
var : "/var/opt/nuts"
log : "/var/log/nuts"
temp : "/tmp/nuts/global"
cache : "/var/cache/nuts"
run : "/tmp/run/nuts/global"
--color or -c (default is 'auto')
--color=always|yes|true|y|formatted
enables formatted (colorful) terminal (formatted terminal)
--color=inherited|h
use parent process terminal mode
--color=auto|system|s
auto detected terminal (default)
--color=never|none|no|false|n
equivalent to --no-color
warning2 Attention : --color argument, should it accept a value, it must be an immediate one (with '=')
-C
--no-color
disable formatted (colorful) terminal (filtered terminal).
--trace (default is true)
-t
apply trace mode which allows a more verbose output
--bot (default is false)
-B
enable bot/automation mode (non-interactive, structured output)
--stacktrace (default is false)
-d
show Java stacktrace on error
--reset-options
reset options to default values
--transitive (default is true)
consider transitive repositories
--indexed (default is true)
search into indexes
--cached (default is true)
use cache whenever possible
--progress[=<options>]
-P[=<options>]
configure progress monitor. valid values include
true|enable
progress monitor is enabled (default)
no|false|n
progress monitor is disabled
newline || %n
progress monitor writes every message in a new line
log
progress monitor writes every message to the log as finest (aka verbose)
log=off|severe|warning|info|config|fine|finer|finest|verbose|all
log-off|log-severe|log-warning|log-info|log-config|log-fine|log-finer|log-finest|log-verbose|log-all
progress monitor writes every message to the log with the selected level
--solver <solverName> (default is default)
configure dependency solver used to resolve dependencies.
default : defaults to maven, uses maven solver regardless of artifact configured solver
maven : uses maven solver regardless of artifact configured solver
gradle : uses gradle solver regardless of artifact configured solver
descriptor : uses artifact descriptor's solver, or default if not specified.
and switches solver if a dependency requires another solver
maven-first : uses maven solver for the first artifact/dependency, then switches is the
dependency descriptor requires another solver
gradle-first: uses gradle solver for the first artifact/dependency, then switches is the
dependency descriptor requires another solver
--plain[=<format-options>]
define plain text format as default output format (this is default)
-T[=<format-type>[:<format-options>]]
--output-format[=<format-options>[:<format-options>]]
define format as default output format. --output-format=json is equivalent to --json
beside one specify some extra options for the format, such as --output-format=json:lenient
--json[=<format-options>]
define json format as default output format
--table[=<format-options>]
define table format as default output format
--tree[=<format-options>]
define tree format as default output format
--xml[=<format-options>]
define xml format as default output format
--props[=<format-options>]
define props format as default output format
--output-format-option=<format-options>
| -T=<format-options>
: add specific format option
--read-only or -R
read only mode. All changes to the workspace - if ever - are not persisted.
--verbose , --log-verbose , --log-finest , --log-info , --log-fine ,
--log-finer , --log-severe , --log-warning , --log-config ,
--log-off , --log-off
apply logging level to both terminal and file
--log-term-verbose , --log-term-finest , --log-term-info , --log-term-fine ,
--log-term-finer , --log-term-severe , --log-term-warning , --log-term-config ,
--log-term-off , --log-term-off
apply logging level to terminal
--log-file-verbose , --log-file-finest , --log-file-info , --log-file-fine ,
--log-file-finer , --log-file-severe , --log-file-warning , --log-file-config ,
--log-file-off , --log-file-off
apply logging level to terminal
--log-file-size <size>
define the maximum number of mega to write to any one file. size is either expressed in mega or suffixed with unit.
supported units are :
k or kb : for kilo-bytes (example 1024k)
m or mb : for mega-bytes (example 10m)
g or gb : for giga-bytes (example 10Gb)
The size is always a multiple of Mb
--log-file-base <log-folder-path>
define log file folder path
--log-file-name <log-file-name-pattern>
define log file name pattern. this defaults to "nuts-%g.log"
--log-file-count <number>
define the number of files to use (in rotating log)
--log-inherited
calls rootLogger.setUseParentHandlers(true) to inherit log handlers.
--exclude-extension <extension-id-list>
exclude extensions from being loaded at runtime. list is separated with characters " ,;"
--exclude-repository <repository-list>
exclude repositories from being loaded at runtime. list is separated with characters " ,;"
-r <repository-path>
--repository <repository-path>
--repositories <repository-path>
--repos <repository-path>
register one or multiple (comma ',' separated) temporary repositories at the given path
repositories follow the following pattern
[+-=]?(<name>=)?(<repo-type>[+]@)?<path>
some examples are:
--repos=+jcenter
--repos=-https://jcenter.bintray.com
--repos=jcenter=https://jcenter.bintray.com
--repos=jcenter=maven@https://jcenter.bintray.com
--repos==dev=maven@htmlfs+https://maven.thevpc.net
the prefix operator (+,-,=) when specified defines whether the repository is
to include (+), to exclude (-) or to replace (=) ie all existing repositories will be
discarded and replaced with the given list of repositories.
This list will be used when creating a new workspace. In that conditions, the list may affects the 'archetype' considered.
For example, the default repositories in "default" archetype are 'local,maven-local,maven-central,system'.
"--repos=+jcenter" produces a final repository list of 'local,maven-local,maven-central,system,jcenter'
"--repos=jcenter" also produces a final repository list of 'local,maven-local,maven-central,system,jcenter'
"--repos=-system" produces a final repository list of 'local,maven-local,maven-central'
"--repos==system" produces a final repository list of 'system'
The repository names supported are
local : local user nuts folder repository
system : local user nuts folder repository
.m2
m2
maven-local : local user maven folder repository (~/.m2)
maven
central
maven-central : maven central repository at https://repo.maven.apache.org/maven2
jcenter : maven repository at https://jcenter.bintray.com
jboss : maven repository at https://repository.jboss.org/nexus/content/repositories/releases
clojars : maven repository at https://repo.clojars.org
atlassian : maven repository at https://packages.atlassian.com/maven/public
atlassian-snapshot :
maven repository at https://packages.atlassian.com/maven/public-snapshot
oracle : maven repository at https://maven.oracle.com
google : maven repository at https://maven.google.com
spring
spring-framework
: maven repository at https://repo.spring.io/release
maven-thevpc-git
vpc-public-maven
: maven repository at https://raw.githubusercontent.com/thevpc/vpc-public-maven/master
nuts-thevpc-git
vpc-public-nuts
: maven repository at https://raw.githubusercontent.com/thevpc/vpc-public-nuts/master
dev
thevpc : maven repository at https://maven.thevpc.net
The repository types supported are:
maven standard maven repository
nuts standard nuts repository
The supported protocols are:
http https for http(s) server access, most likely such repositories are not navigable. i.e, you
can download an artificat if and only you know its full coordinates
htmlfs for http(s) server access that is navigable by 'scrapping' its html content.
At boot time, only standard 'Tomcat Http Server' standard directory servlet is supported.
later on, all nuts filesystem protocols (implemented in NPath) including http,
https, htmlfs (that supports tomcat and httpd/apache directory listing),
dotfilefs, ssh and githubfs are supported.
Remember that boot time repos are only used for installing nuts itself (and its
dependencies).
--boot-repository <repository-path>
--boot-repositories <repository-path>
--boot-repos <repository-path>
register one or multiple (comma ',' separated) repositories at initialization time.
It works just like --repos but this is only relevant when the workspace is created.
It is discarded otherwise. When no --boot-repos, the workspace will be created using --repos configuration.
--yes | -y | --force
disables interactive mode and assumes yes for all questions
--no | -n
disables interactive mode and assumes no for all questions
--ask
enables interactive mode
--error
exit with error whenever interactive mode is required
--desktop-launcher=never|unsupported|supported|preferred|always (default depends on the operating system and the availability of a desktop environment)
this option overrides default behaviour of the system
desktop environment. It defines the support mode for desktop icons (application shortcut on the Desktop) for the desktop
environment ( ##@see## NutsSupportMode class).
---system-desktop-launcher=unsupported disables creating any desktop icon on the system
---system-desktop-launcher=supported enables creating desktop icons whenever asked by an application
---system-desktop-launcher=preferred enables creating desktop icons whenever asked by an application and
that application requires this preference
---menu-launcher=never|unsupported|supported|preferred|always (default depends on the operating system and the availability of a desktop environment)
this option overrides default behaviour of the system desktop environment.
It defines the support mode for creating a menu for the desktop environment.
---user-launcher=never|unsupported|supported|preferred|always (default depends on the operating system and the availability of a desktop environment)
this option overrides default behaviour of the system desktop environment.
It defines the support mode for creating a custom application shortcut for the desktop environment.
) NUTS OPEN OPTIONS:
--recover or -z (defaults to false)
try to recover from invalid workspace by ignoring cache and re-resolving dependencies. User configuration will not be altered.
Will bootstrap workspace unless -Q (--skip-boot) option is armed.
--reset or -Z (defaults to false)
reset (delete) nuts workspace folder before starting the workspace. All user configuration will not be deleted.
--reset-hard or --hard-reset (defaults to false)
hard reset (delete) all of nuts workspaces and any configuration file. All user configuration will not be deleted.
a common usage is to hard-reset nuts and exit using -Qy --reset-hard which will silently hard-reset configuration and exit.
if -Q is not used, after resetting, a new workspace will be bootstrapping
--skip-boot or -Q (defaults to false)
do not load workspace. This is helpful when used with --reset or -Z, aka -QZ, in which case,
nuts is completely uninstalled from your system (called kill mode).
--dry or -D (defaults to false)
perform a dry execution (with no side effects) rather than an effective one. prints actions or external command lines to
perform if the --dry was not armed. Useful to know more about command effects.
--skip-welcome or -K (defaults to false)
do not call welcome command if the command line is empty. This is helpful in conjunction with --reset not
to start a new workspace (and recreate config files) after resetting the configuration folders.
--embedded or -b (defaults to false)
when invoking a nuts artifact, it will be executed in the current process (no JVM process wil be spawn)
--external or --spawn or -x (defaults to true)
when invoking a nuts artifact, it will always be executed in a newly created process (this is the default)
--system (defaults to false)
--user-cmd (deprecated, replaced by --system)
the command is considered as a native command (not a nuts) and will be passed to the os as is.
--current-user (defaults to true)
the command is run as current user (default)
--as-root (defaults to false)
--root-cmd (deprecated, replaced by --as-root)
the command need to run with elevated privileges, aka as root (a password will be asked for if not already root).
--run-as <user-login> (defaults to "")
the command need to run with impersonation, aka as user <user-login> (a password will be asked for if not already <user-login>).
--open-mode <mode> (defaults to rw)
defines open mode of the workspace. three values are accepted :
open-or-create or rw or on or oc :
this is the default, if the workspace exists, it will be opened ;
if It's not it will be created then opened.
open-existing or r or o :
will open existing workspace of fail
create-new or w or c or n :
will create non existing workspace of fail
--open (defaults to false)
will open existing workspace or fail if not already existing
--create (defaults to false)
will create non existing workspace or fail if already existing
--open-or-create (defaults to true)
will create non existing workspace or open if already existing
--open-or-null (defaults to false)
will open existing workspace or exit not already existing
--theme <theme-name-or-path> (defaults to default)
start nuts using a specific terminal coloring theme by theme name or file path/url.
Default built-in themes include:
- default use default theme for the current environment
- ansi use ANSI colors
- horizon used as default on linux and other NIX
- grass used as default on windows
- whiteboard light background theme using 24-bit true colors
- any file path or url : define your customized theme
---debug=port,(suspend|!suspend) this option enables running child processes with debug mode.
It defaults to "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"
Hence it runs by default in server mode, and using socket transport. If the port is not defined, it defaults to 5005.
It the suspend mode is not defined it defaults to true.
If this option is encountered as the very first argument, the root jvm process is also run in debug mode.
nuts wil use the first port available starting from the given port number.
###) NUTS NON STANDARD OPTIONS:
nuts provides extra, non standards options (aka susceptible to change in later versions).
Non standard options can be used by nuts or any nuts application. Such options start with three dashes
(and not two dashes).
---show-command prints child process command arguments
---monitor-start prints a message when starting a new monitor
###) SPECIAL OPTIONS:
--version [<-options>]...
or -version or -v
show api version and exit without loading the workspace
for more details, type : nuts version version
--help [<-options>]...
or -help or -h
show a short message describing nuts and exit without loading the workspace
for more details, type : nuts help
##) NUTS COMMAND:
nuts handles a set of command to manage nuts it sel and to run/exec other programs, mainly those its was responsible
for installing. Commands support include internal commands, supported packages (installed or not, when not installed
will search for it), aliases (a commodity mechanism to extend internal commands) and even any other executable.
Here is a lis of internal commands :
version [<-options>]...
load workspace and show api and runtime versions, then exit
info [<-options>]...
show workspace detailed information (paths and libraries) and exit.
for more details, type : nuts help info
welcome [<-options>]...
show welcome message and exit.
for more details, type : nuts help welcome
help [<-options>]... <id>...
or --help or -? or -h
show this help and exit
for more details, type : nuts help help
license [<-options>]...
show license info and exit
for more details, type : nuts help info
install [<-options>]... <id>... <args> ...
install nuts package <id>
for more details, type : nuts help install
uninstall [<-options>]... <id>... <args> ...
uninstall nuts package <id>
for more details, type : nuts help uninstall
update [<-options>]... <id> ... <args> ...
check if a newer version of nuts or any of the provided <id>
is available in the current workspace and perform update by downloading (fetch)
and installing the artifact. The updated version is promoted to 'default' version.
for more details, type : nuts help update
check-updates [<-options>]... <id> ...
check if a newer version of nuts is available in the current workspace without performing updates
Takes the same arguments and options as update command
for more details, type : nuts help check-updates
search [<-options>]... <id> ...
search for <id>
for more details, type : nuts help search
fetch [<-options>]... <id> ...
download <id> without installing them
for more details, type : nuts help fetch
deploy [<-options>]... <id> ...
deploy <id> without installing them
for more details, type : nuts help deploy
undeploy [<-options>]... <id> ...
undeploy <id>
for more details, type : nuts help undeploy
exec [<-options>]... [command] <args>...
--exec [<-options>]... [command] <args>...
-e [<-options>]... [command] <args>...
run command with the given executor options ( it will be considered an option if it
starts with - ). This is helpful to issue JVM Options to executor for instance.
for more details, type : nuts help exec
which [<-options>]... [command] ...
show command to be executed if run with 'exec'
for more details, type : nuts help which
- <command>...
run a nuts shell nsh command with the remaining arguments.
This is equivalent to nsh -c <command>
##) EXAMPLES:
nuts help
show this help and exit
nuts help exec
show help for the exec command, equivalent to nuts exec --help
nuts --workspace /home/me/some-folder --archetype=minimal
a minimal (minimal archetype) workspace will be created
and saved if no workspace was resolved. The workspace handles local
packages only
nuts --workspace /home/me/some-folder update
updates nuts to the very latest version using workspace location
/home/me/some-folder.
nuts --workspace /home/me/some-folder --yes -e -Xmx1G netbeans-launcher
run netbeans-launcher with JVM option -Xmx1G. If the artifact is not installed
it will be automatically installed ( --yes modifier helps disabling interactive mode)
nuts -Zy -w test -P=%n
force progress to use newline after each message instead of updating the same line while using test workspace
nuts -ZSby ---system-desktop-launcher=preferred
run nuts and prefer creating launcher icons when asked for by apps regardless of system defaults.
nuts -ZQ -w=test --json
reset workspace test and show result in json format
nuts -ZySb -w=test --theme=documentation/website/src/resources/theme-examples/min.ntf-theme
run nuts with a custom theme file.
Examples of theme files are available under $nuts_github/documentation/website/src/resources/theme-examples/
nuts - ls
run the ls command using nsh (aka nuts nsh -c ls)
nuts ls
run the ls command (either defined as a custom command or system command).
Note that installing nsh will also install somme custom commands, including ls
which refers to nsh -c ls, too
###) special command native-exec
Nuts Boot can be used to run native commands by using native-exec as very first argument.
native-exec allows running any command until it exits without error (zero status) or a maximum run count is reached
nuts native-exec <options>... <command>...
--min-time=<time> (defaults to 0ms)
if the running command exits before min-time, the application ends with error
time can be suffixed with 'ms' (for milliseconds) or 's' for seconds
--wait-time=<time> (defaults to 0ms)
time to wait before rerunning the same command
time can be suffixed with 'ms' (for milliseconds) or 's' for seconds
--max-count=<time> (defaults to 1)
if the running command exits before min-time, the application ends with error
time can be suffixed with 'ms' (for milliseconds) or 's' for seconds
2 exec
execute a command
runs command with the given executor options ( it will be considered an option if it
starts with '-' ). This is helpful to issue JVM Options to executor for instance
##) SYNOPSIS:
nuts exec [<-options>]... <command> <arguments>...
--exec [<-options>]... <command> <arguments>...
-e [<-options>]... <command> <arguments>...
##) OPTIONS:
--embedded | -b
when invoking a nuts artifact, it will be executed in the current process (no JVM process will be spawned)
--external | --spawn or -x
when invoking a nuts artifact, it will always be executed in a newly created
process (this is the default)
--system
the command is considered as a native command (not a nuts) and will be passed
to the os as is.
--root-cmd
the command is considered as a native command (not a nuts) and will be passed
to the os as is with root privileges (a password will be asked for).
--target=<connection-string>
the command is run on a remote machine using the given connection string.
The current version supports ssh connection strings in the following form
'ssh://username:password@address:port'.
When the username is not provided, the current user is considered.
When the password is not provided, the default ssh key is used.
When the port is not provided, 22 port number is considered.
--current-user
when using a system command, the command is run with the current user privileges (default).
--as-root
when using a system command, the command is run with the system root privileges. credentials may be asked for.
--sudo
run command with elevated privileges using sudo.
--as-user=<username> or --run-as=<username>
when using a system command, the command is run with the given system username privileges. credentials may be asked for.
--open-file
the path to execute will not be executed. Instead it will be opened with assigned editor. System bindings are most likely to be considered.
--rerun
run command multiple times or in a loop
--cron=<cron-pattern>
launch application as specified in the cron format
--rerun-min-time=<duration>
when in rerun or cron mode, if the app stops before min time (aka crashes), it will not be rerun
--rerun-safe-time=<duration>
when in rerun or cron mode, when application stops, wait for 'safe duration' time before rerunning
--rerun-max-count=<int>
maximum number of iterations before terminating the rerun loop
--java-version=<version>
specify required Java version (e.g. 11, 17, 21)
--java-home=<path>
specify explicit Java installation path
--main-class=<class>
specify main class to execute (name or candidate index number)
--class-path=<cp> or --cp <cp>
custom classpath entries
--nuts-path=<ids> or --np <ids>
additional nuts artifact IDs to include on classpath
--dir=<path>
working directory for process execution
--win or --javaw
use windowless javaw binary for GUI applications
--show-command
print the resolved command line before execution
##) EXAMPLES
nuts exec --help
show this help and exit
nuts exec --yes -e -Xmx1G netbeans-launcher
runs netbeans-launcher with JVM option -Xmx1G. If the artifact is not installed
it will be automatically installed ( --yes modifier helps bypassing interactive mode)
nuts exec my-nuts-group:my-nuts#12.3
executes the version 12.3 of my-nuts-group:my-nuts
nuts exec my-nuts-group:my-nuts
executes the latest version of my-nuts-group:my-nuts
nuts exec my-nuts
executes the latest version of my-nuts-group:my-nuts supposing that my-nuts-group
is added as imported group using config import my-nuts-group
nuts -ZSby -w test ./build-website.nsh
run sh file
nuts -Zy -w test /home/vpc/target/hl/local.vpc-no-name-1.0.0-SNAPSHOT.jar
run jar file
nuts --verbose -ZSbkKy -w=test6 tn.corp.mlda:mlda
run javafx app
nuts -ZykKS -w=temp --verbose exec --main-class=1 org.springframework.boot:spring-boot-cli#2.4.1
run spring boot cli
3 which
resolves commands type
##) SYNOPSIS:
nuts which [<-options>]... [<command>] ...
resolves commands type
##) EXAMPLES:
nuts which --help
show this help and exit
nuts which netbeans-launcher exec
show netbeans-launcher and exec types. The first is a artifact the latter is an internal command
4 fetch
fetch artifacts without installing them
##) SYNOPSIS:
nuts fetch [<-options>]... <ids> ...
fetch and cache <ids>
##) OPTIONS:
-i | --installed
fetch installed artifacts
--not-installed
fetch non-installed artifacts
--failfast
fail fast on the first error
-r | --repository <repo-name>
specify target repository to search for artifacts to fetch
--scope api|implementation|compile|provided|import|runtime|system|test
filter dependencies by scope during resolution
--optional
include optional dependencies during fetch
-l | --long
display long format output with details
--display=<columns>
comma-separated list of columns to display
--content
include artifact content during fetch
##) EXAMPLES
nuts fetch --help
show this help and exit
nuts fetch org.jedit:jedit#5.6.0
fetch and cache jedit artifact without installing
nuts fetch --offline org.jedit:jedit
fetch jedit from local repositories only
5 install
install nuts package <nuts-artifact>
##) SYNOPSIS:
nuts install <-options> <nuts-artifact>...
##) OPTIONS:
-c | --companions
include companions in the install process
-i | --installed
include already installed artifacts in the install process (re-install)
--reinstall
force reinstalling the package even if already installed
--deploy-only
deploy package to local repository without executing install logic
--repair
repair corrupted installation
-g | --args <args> ...
pass the given args to the install executor
##) EXAMPLES:
nuts install --help
show this help and exit
nuts install netbeans-launcher
install netbeans-launcher
nuts --debug -Zy -w test install pnote
install pnote in debug mode
nuts -Zyb -w test --verbose install netbeans-launcher
install netbeans-launcher in verbose mode
6 uninstall
uninstall nuts package <nuts-artifact>
##) SYNOPSIS:
nuts uninstall <nuts-artifact>... <args> ...
uninstall one or more nuts from repositories if installed.
if no nuts-id is defined an error will occur
##) OPTIONS:
-e | --erase
enable erase mode to delete all of artifact's config data as well
--all-versions
uninstall all installed versions of the specified artifact
-g | --args <args> ...
pass the given args to the uninstaller executor
##) EXAMPLES
nuts uninstall --help
show this help and exit
nuts uninstall netbeans-launcher
uninstall netbeans-launcher
nuts uninstall my-group:my-thing#2.3
uninstalls - if able to resolve it - exactly the nuts "my-group:my-thing#2.3"
nuts uninstall my-group:my-thing
uninstalls - if able to resolve it - the latest version of "my-group:my-thing"
nuts uninstall my-thing
uninstalls - if able to resolve it - the latest version of "my-group:my-thing" as long as "my-group" is defined as a default import group
7 check-updates
check for updates
check if a newer version of nuts is available in the current workspace without performing updates
##) SYNOPSIS
nuts check-updates [<-options>]... <ids> ...
##) OPTIONS:
-a | --all
check updates for both workspace's api, runtime extensions and installed artifacts
-w | --ws or --workspace
check updates for all workspace's related artifacts (api, runtime and extensions)
-i | --installed
check updates for all installed artifacts
-e | --extensions
check updates for all workspace's extensions
-r | --runtime
check updates for workspace's runtime artifact (minor workspace update)
-A | --api
check updates for workspace's api (major workspace update)
##) EXAMPLES
nuts check-updates --help
show this help and exit
nuts check-updates
check updates for current workspace
8 update
nuts update
check if a newer version of nuts or any of the provided <ids>
is available in the current workspace and perform update by downloading (fetch)
and installing the artifact. The updated version is promoted to 'default' version.
##) SYNOPSIS:
nuts update [<-options>]... <ids> ... <args> ...
update the nuts to the latest version.
If --force is armed, will re-download the artifacts and its dependencies.
nuts update [ --to-version <version> ]
update the current workspace to latest version or to the given version if provided.
##) OPTIONS:
-a | --all
force updates of both workspace's api, runtime extensions and installed artifacts
-w | --ws | --workspace
update all workspace's related artifacts (api, runtime and extensions)
-i | --installed
update all installed artifacts
-e | --extensions
update all workspace's extensions
-c | --companions
update all companions
-r | --runtime
update workspace's runtime artifact (minor workspace update)
-A | --api
update workspace's api (major workspace update)
-v <version> or --to-version <version>
force updates to the provided <version> (may be a downgrade)
<args> ...
provide arguments to pass to updater
##) EXAMPLES
nuts update --help
show this help and exit
nuts update
update workspace
nuts update netbeans-launcher
update netbeans-launcher
9 search
search for artifacts
##) SYNOPSIS:
nuts search [<-options>]... <ids> ... <args> ...
search for <ids>
##) OPTIONS:
--lenient
when an id is found but its descriptor and/or its file are not found, do not raise an error and continue. default no
--all-versions
return all versions of the same ids. if no will always return the latest one. default yes
--duplicates
return the same version from distinct repositories if found. default yes
--distinct
remove duplicates . default false
-L | --latest | --latest-versions
return latest version of each searched id. equivalent to --all-versions=no
-S | --single | --single-versions
return one instance of each version even if found in distinct repositories. equivalent to --duplicate=no
-s | --sort
sort result. default no
--main
include main result. This is meaningful when one needs to find only dependencies, and hence turns this flag to no. default yes
--dependencies
include dependencies in result. default no
--main-only
include main result and no dependencies. equivalent to --main=yes --dependencies=no
--dependencies-only
include dependencies and no main. equivalent to --main=no --dependencies=no
--main-and-dependencies
include main result and no dependencies. equivalent to --main=yes --dependencies=yes
-r | --repository <repo-name>
include repository in the search process. if none defined, all repositories are searched.
--arch x86|amd64|ia64|ppc|sparc
include architecture in the search process. if none defined, all architectures are searched.
--packaging jar|war|...
include packaging in the search process. if none defined, all packagings are searched.
--cached
include cached in the search process. default yes
--indexed
include search index in the search process. default yes
--effective
compute effective descriptor. default no
--content
include content. default no
--install-info
include install information. default false
--location
force found contents to be copied to location
-f | --fetch offline|online|anywhere|installed|remote
include fetch mode in the search process. if none defined, all fetch modes are searched.
--offline | -F
equivalent to --fetch=offline
--online | -O
equivalent to --fetch=online
--anywhere | -a
equivalent to --fetch=anywhere
--installed | -i
search for installed only packages
--included
search for included packages in other installations
--deployed
search for installed and required (as dependencies) packages
--remote | -R
equivalent to --fetch=remote
--optional
relevant when --dependencies is armed.
--optional= : search for all dependencies, including optional (default)
--optional=yes : search for optional dependencies only
--optional=no : search for non optional dependencies only
--scope api|implementation|compile|provided|import
|runtime|system|test-compile|test-provided
|test-runtime|test|run|run-test|other|all
relevant when --dependencies is armed.
include scope in the search dependencies process.
if none defined, only run scope is searched.
--default | --default-versions
find only default installed versions. This is meaningful with --installed flag
--libs | --lib
find libraries (non app) only
--apps | --app
find applications (non libraries) only
--nuts-apps |--nuts-app
find nuts applications only
--extensions | --extension
find extensions only
--runtime
find nuts runtime only
--companions | --companion
find companions only
--api-version
find artifacts compatible with the given api-version
-l
--long
--display-long
equivalent to --display=long
--display=<comma-separated-columns>
define columns to display (ordered list of columns, comma separated)
Accepted columns are:
status : show nuts status using condensed format using 3 characters
char #1 : show installation status
I : means 'installed' and is 'default'
i : means 'installed' and is not default
d : means 'dependency' (aka 'required') locally deployed
f : means 'fetched' locally but not installed
r : means 'remote' (not fetched)
char #2 : show package type
a : nuts 'api' package
r : nuts 'runtime' package
e : nuts 'extension' package
c : nuts 'companion' package
- : other package
char #3 : show application status
X : means executable nuts application (implementing NutsApplication)
x : means executable regular application
- : means non executable or unknown
char #4 : show scope status (when applicable)
c : compile/api scope
i : implementation scope
r : runtime scope
s : system scope
p : provided scope
t : test (any) scope
m : import scope
O : other
- : unknown
install-date : artifact install date
install-user : artifact install user
id : artifact id
name : simple name
packaging : artifact packaging (jar, war, msi, exe, ...)
arch : artifact supported architectures (x86, x64,...)
platform : artifact supported platforms (java, dotnet, ...)
os : artifact supported operation systems (Linux, Windows,...)
osdist : artifact supported OS distributions (OpenSuSE, Ubuntu, ...)
de : artifact supported OS Desktop Environment (KDE, GNOME,...)
exec-entry : Main class
file-name : artifact file name
file : artifact file path
var-location : artifact var folder
temp-location : artifact temp folder
config-location : artifact config folder
lib-location : artifact lib folder
log-location : artifact log folder
cache-location : artifact cache folder
programs-location : artifact programs folder
run-location : artifact run folder
long : equivalent to status, install-date, install-user, id
all : equivalent to all of the above
--omit-env
when formatting id, omit env
--omit-face
when formatting id, omit face
--omit-group
when formatting id, omit group
--omit-imported-group
when formatting id, omit imported group
--omit-repo
when formatting id, omit repository
--highlight-imported-group
when formatting id, highlight imported group
--highlight-optional
when formatting id, highlight optional
--highlight-scope
when formatting id, highlight scope
##) EXAMPLES
nuts search --help
show this help and exit
nuts search
search installed nuts
nuts search --offline netbeans-*
search all artifacts that start with "netbeans-" in all local repositories
nuts search --anywhere netbeans-*
search all artifacts that start with "netbeans-" in all local and remote repositories
nuts -Zy -w test search --repository spring
search using spring repository only
-Zy search -l --json
search locally installed artifacts in json format
10 deploy
deploy a nuts
##) SYNOPSIS:
nuts deploy [<-options>]... <file-or-id>...
deploy a file or artifact ID to a repository
##) OPTIONS:
-d | --desc <desc-file>
descriptor file path
-s | --source | --from <repository>
source repository to deploy from
-r | --target | --to <repository>
target repository to deploy to
--sha1 <hash>
SHA-1 checksum for the artifact content
--desc-sha1 <hash>
SHA-1 checksum for the descriptor file
##) EXAMPLES:
nuts deploy myjar.jar
deploy myjar.jar file to default local repository
nuts deploy example:some-thing --to system
deploy example:some-thing to system repository
11 push
push a nuts to remote repository
##) SYNOPSIS:
push <id>
pushes a nuts to remote server
##) EXAMPLES:
push my-group:my-name
pushes the artifact
12 settings
configure nuts
##) SYNOPSIS:
settings <command> [<args>]...
###) alias:
settings list aliases [<name-or-expr>]
list registered aliases
settings add alias <name>=<cmd>...
create or update an alias
settings remove alias <name>...
remove an alias
###) imports:
settings list imports [<name-or-expr>]
list registered group imports
settings (import|ia) <name>...
add a group import
settings (unimport|ir) <name>...
remove a group import
###) archetype:
settings (list archetypes|la)
list available workspace archetypes
###) backup/restore:
settings backup (--file|-f)=<file>
settings backup <file>
create a workspace configuration backup
settings restore (--file|-f)=<file>
settings restore <file>
restore workspace configuration from backup
###) cli-id:
settings cli-id
settings get cli-id
get active CLI ID
settings cli-id=<value>
settings set cli-id <value>
set active CLI ID
###) connect:
settings connect --password=<password> <user>@<host>:port
connect to a remote tcp/ssh server
###) delete:
settings delete bin|conf|var|log|temp|cache|run ...
delete specific workspace directory
###) update stats:
settings update stats ...
update repository statistics and index
###) java:
settings add java --search
automatically search system for installed JDK/JREs
settings add java --download [--version=<version>] [--vendor=<vendor>]
download and register JDK/JRE
settings add java <folder>...
register JDK/JRE from specified folder
settings remove java <name>...
remove registered JDK/JRE
###) repository:
settings list repos...
list registered repositories
settings add repo <repo>...
add a repository
settings remove repo <name>...
remove a repository
settings enable repo <name>...
enable a repository
settings disable repo <name>...
disable a repository
settings edit repo <name> <repo-command>...
configure repository settings
###) user:
settings list users...
list registered users
settings add user <user>...
add a user
settings remove user <name>...
remove a user
settings enable user <name>...
enable a user account
settings disable user <name>...
disable a user account
settings edit user <name> <user-command>...
configure user permissions
settings password...
change user password
###) log:
settings (set log level|sll) verbose|finest|fine|finer|info|warning|severe|error|config|off|all
set logging level
settings (log level|get log level)
get current logging level
###) ndi (nuts desktop integration):
settings ndi [<option>...] <package>...
create desktop integration / application launchers
##) EXAMPLES:
nuts settings list repos
list all repositories in current workspace
nuts settings add alias ll='search -l'
create an alias named ll
nuts settings add java --search
auto-detect installed JDKs on system
13 welcome
show minimal welcome message
show minimal welcome message
##) SYNOPSIS:
nuts welcome [<-options>]
14 info
show workspace information and exit
show workspace detailed information (paths and libraries)
##) SYNOPSIS:
nuts info [<-options>]
##) OPTIONS
-r | --repos
show repositories
-c | --cmd
show command arguments
-e | --env
show environment info (Java™ version, os version, ...)
-p | --path
show workspace locations
-f | --fancy
show paths variables in multi rows
--add <key>=<value>
add extra key=value to info list
-g | --get <name> ...
filter names to include only the given names
##) EXAMPLES
nuts info --help
show this help and exit
nuts info --json
show info in json format
15 version
show version
show version
##) SYNOPSIS:
nuts version [<-options>]
nuts --version
nuts -version
nuts -v
##) OPTIONS:
-a | --all
include all versions (api, runtime, Java™ and operating system)
--add <key>=<value>
include key=value pair in the result
##) EXAMPLES
nuts version -a
show all versions
nuts -v
show version
nuts -Zy -w test version --table
show version in tabular format
16 help
show help and exit
If no command names are provided, nuts help is displayed. Otherwise, Each command help is displayed.
When Command is unknown or invalid, an error message is displayed.
##) SYNOPSIS:
nuts help [<-options>]... <command-name>...
##) EXAMPLES
nuts help --help
show this help and exit
nuts help update
show help for update internal command
nuts -Zy -w test help --colors
show NTF help
nuts -ZSbkKy -w=test6 settings --help
echo with NFT format
17 license
show license info and exit
##) SYNOPSIS:
nuts license
##) EXAMPLES
nuts license --help
show this help and exit
nuts license
show license and exit
18 bundle
creates a self-contained, air-gapped bundle of one or more nuts applications and their dependencies
##) SYNOPSIS:
bundle <id>...
creates a bundle for the given application id(s) and their dependencies
##) OPTIONS:
--app <id>
adds the given application id to the bundle ; equivalent to passing <id> as a non-option argument (may be repeated)
--lib <id>
adds the given id to the bundle as a plain library (its dependencies are resolved but it is not treated as an executable application ; may be repeated)
--jar, --as-jar
builds the bundle as a single executable jar file (default format)
--zip, --as-zip
builds the bundle as a zip archive
--dir, --as-dir
builds the bundle as a plain folder (no nuts bundle metadata files are written)
--exploded, --as-exploded
builds the bundle as an unpacked folder, keeping the nuts bundle metadata files so it can later be cleaned or rebuilt in place
--target <path>
sets the destination file (for --jar/--zip) or folder (for --dir/--exploded) ; when omitted, a name is derived from the resolved application name and version
--clean
(with --dir or --exploded only) deletes any bundle content and metadata already present at the target location before building
--app-name, --name <name>
overrides the application name used to derive the default bundle file/folder name
--app-version <version>
overrides the application version used to derive the default bundle file/folder name
--app-title, --title <title>
sets the application title stored in the bundle info
--app-desc, --desc <description>
sets the application description stored in the bundle info
--optional
marks resolved dependencies as optional
--embedded
runs the embedded nuts workspace (bootstrapped when the bundle is executed) in embedded mode
-y, --yes
answers yes to confirmation prompts of the embedded workspace when the bundle is executed
-z, --reset
resets the embedded nuts workspace when the bundle is executed
-l, --verbose
runs the embedded nuts workspace in verbose mode when the bundle is executed
##) EXAMPLES:
bundle my-group:my-app#1.0
creates an executable jar bundle (my-app-1.0-bundle.jar) containing my-group:my-app#1.0 and its dependencies
bundle my-group:my-app#1.0 --zip --target my-app-bundle.zip
creates a zip bundle at my-app-bundle.zip
bundle my-group:my-app#1.0 --exploded --target ./my-app-bundle --clean
builds (or refreshes) an exploded bundle folder, wiping any previous content first
bundle my-group:my-app#1.0 --lib my-group:extra-plugin#2.0
bundles the app together with an extra library that is not itself launched as an application