blob: cf1b6d1babb95d98365d931886d4f15aa86b6f51 [file] [log] [blame]
////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
////
= Using standalone
Ivy can be used as a standalone program very easily. All you need is a Java 7+ runtime environment (JRE)!
Then here is how to call it:
[source,shell]
----
java -jar ivy.jar -?
----
It will display usage text as follows:
[source]
----
usage: ivy
==== settings options
-settings <settingsfile> use given file for settings
-properties <propertiesfile> use given file for properties not specified in set
tings
-cache <cachedir> use given directory for cache
-novalidate do not validate ivy files against xsd
-m2compatible use Maven 2 compatibility
==== resolve options
-ivy <ivyfile> use given file as ivy file
-refresh refresh dynamic resolved revisions
-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
-types <types> accepted artifact types
-mode <resolvemode> the resolve mode to use
-notransitive do not resolve dependencies transitively
==== retrieve options
-retrieve <retrievepattern> use given pattern as retrieve pattern
-ivypattern <pattern> use given pattern to copy the ivy files
-sync use sync mode for retrieve
-symlink create symbolic links
-overwriteMode <overwriteMode> use given overwrite 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
-overwrite overwrite files in the repository if they exist
==== makepom options
-makepom <pomfilepath> create a POM file for 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
-version displays version information
----
(*__since 1.3__*) System properties are included as Ivy variables, so you can easily define an Ivy variable like this:
[source,shell]
----
java -Dmyivyvar=myvalue org.apache.ivy.Main [parameters]
----
(*__since 2.5__*) Additional properties defined in a separate `.properties` file (rather than Ivy settings) can be loaded using `-properties` option like this:
[source,shell]
----
java -jar ivy.jar -properties version.properties -main org.apache.tools.ant.Main
----
NOTE: Prior to 2.5, Ivy `-main` created a classloader that used Ivy classloader as a parent. This is no longer the case; if your usage depended on Ivy classes being available, Ivy must be declared as a dependency of the component that you want to launch.
(*__since 2.5__*) Ivy can convert `ivy.xml` files to `pom.xml` files using `-makepom` option.
== Examples
[source,shell]
----
java -jar ivy.jar
----
calls Ivy with default configuration using ivy.xml in the current dir
'''
[source,shell]
----
java -jar ivy.jar -settings path/to/myivysettings.xml -ivy path/to/myivy.xml
----
calls Ivy with given Ivy settings file using given Ivy file
'''
(*__since 1.3__*)
[source,shell]
----
java -jar ivy.jar -settings path/to/myivysettings.xml -dependency apache commons-lang 2.0
----
calls Ivy with given Ivy settings file and resolve apache `commons-lang 2.0`.
This is equivalent to:
[source,shell]
----
java -jar ivy.jar -settings path/to/myivysettings.xml -ivy ivy.xml
----
with `ivy.xml` like this:
[source,xml]
----
<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__*)
[source,shell]
----
java -jar ivy.jar -settings path/to/myivysettings.xml -ivy path/to/myivy.xml -cachepath mycachefile.txt
----
calls Ivy with given Ivy settings file and resolves the dependencies found in the given Ivy file, and then outputs 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__*)
[source,shell]
----
java -jar ivy.jar -settings path/to/myivysettings.xml -dependency bar foo 2.0 -main org.bar.foo.FooMain
----
calls Ivy with given Ivy settings file and resolves the dependency `bar` `foo` `2.0`, and then runs `org.foo.FooMain` class with the resolved artifacts as classpath.