# Using standalone

Ivy can be used as a standalone program very easily. All you need is a java 1.4+ runtime environment (JRE)!
Then here is how to call it:

    java -jar ivy.jar -?

It will display an online help like this:

    ==== settings options
     -settings <settingsfile>     use given file for settings
     -cache <cachedir>            use given directory for cache
     -novalidate                  do not validate ivy files against xsd
     -m2compatible                use maven2 compatibility

    ==== resolve options
     -ivy <ivyfile>               use given file as ivy file
     -dependency <organisation> <module> <revision>
                                  use this instead of ivy file to do the rest of the
                                   work with this as a dependency.
     -confs <configurations>      resolve given configurations

    ==== retrieve options
     -retrieve <retrievepattern>  use given pattern as retrieve pattern
     -sync                        use sync mode for retrieve

    ==== cache path options
     -cachepath <cachepathfile>   outputs a classpath consisting of all dependencies
                                   in cache (including transitive ones) of the given
                                   ivy file to the given cachepathfile

    ==== deliver options
     -deliverto <ivypattern>      use given pattern as resolved ivy file pattern

    ==== publish options
     -publish <resolvername>      use given resolver to publish to
     -publishpattern <artpattern> use given pattern to find artifacts to publish
     -revision <revision>         use given revision to publish the module
     -status <status>             use given status to publish the module

    ==== http auth options
     -realm <realm>               use given realm for HTTP AUTH
     -host <host>                 use given host for HTTP AUTH
     -username <username>         use given username for HTTP AUTH
     -passwd <passwd>             use given password for HTTP AUTH

    ==== launcher options
     -main <main>                 the FQCN of the main class to launch
     -args <args>                 the arguments to give to the launched process
     -cp <cp>                     extra classpath to use when launching process

    ==== message options
     -debug                       set message level to debug
     -verbose                     set message level to verbose
     -warn                        set message level to warn
     -error                       set message level to error

    ==== help options
     -?                           display this help
     -deprecated                  show deprecated options

since 1.3 System properties are included as ivy variables, so you can easily define an ivy variable like this:

    java -Dmyivyvar=myvalue org.apache.ivy.Main [parameters]

# Examples

    java -jar ivy.jar

calls ivy with default configuration using ivy.xml in the current dir

    java -jar ivy.jar -settings path/to/myivysettings.xml -ivy path/to/myivy.xml

calls ivy with given ivysettings file using given ivy file

since 1.3

    java -jar ivy.jar -settings path/to/myivysettings.xml -dependency apache commons-lang 2.0

calls ivy with given ivysettings file and resolve apache commons-lang 2.0.
This is equivalent to:

    java -jar ivy.jar -settings path/to/myivysettings.xml -ivy ivy.xml

with ivy.xml like this:

    <ivy-module version="1.0">
      <info organisation="org"
           module="standalone"
           revision="working"
       />
      <dependencies>
        <dependency org="apache" name="commons-lang" rev="2.0" conf="default->*"/>
      </dependencies>
    </ivy-module>

since 1.3

    java -jar ivy.jar -settings path/to/myivysettings.xml -ivy path/to/myivy.xml -cachepath mycachefile.txt

calls ivy with given ivysettings file and resolve the dependencies found in the given ivy file, and then output the classpath of resolved artifacts in cache in a file. This file can then be used to define a classpath corresponding to all the resolved dependencies for any java program.

since 1.4

    java -jar ivy.jar -settings path/to/myivysettings.xml -dependency bar foo 2.0 -main org.bar.foo.FooMain

calls ivy with given ivysettings file and resolve bar foo 2.0, and then run org.foo.FooMain class with the resolved artifacts as classpath