A: 

Ivy can be used as a standalone java program:

java -jar ivy.jar -retrieve "lib/[conf]/[artifact].[ext]"

The retrieve pattern can be then used to determine where files are installed, based on the ivy configuration settings

$ find lib -type f
lib/core/commons-lang.jar
lib/plugin1/commons-logging.jar
lib/plugin1/commons-codec.jar
lib/plugin2/commons-logging.jar
lib/plugin2/commons-cli.jar
lib/plugin3/commons-logging.jar

Configurations are used as a collective label or grouping of dependencies. They are similar to Maven scopes but much more flexible:

<ivy-module version="2.0">
    <info organisation="com.myspotontheweb" module="demo"/>
    <configurations>
        <conf name="core"    description="Core application dependencies"/>
        <conf name="plugin1" description="Plugin 1 dependencies"/>
        <conf name="plugin2" description="Plugin 2 dependencies"/>
        <conf name="plugin3" description="Plugin 3 dependencies"/>
    </configurations>
    <dependencies>
        <dependency org="commons-lang"    name="commons-lang"    rev="2.5"   conf="core->default"/>
        <dependency org="commons-codec"   name="commons-codec"   rev="1.4"   conf="plugin1->default"/>
        <dependency org="commons-cli"     name="commons-cli"     rev="1.2"   conf="plugin2->default"/>
        <dependency org="commons-logging" name="commons-logging" rev="1.1.1" conf="plugin1,plugin2,plugin3->default"/>
    </dependencies>
</ivy-module>

If you only want to download and install one set of jars, into a specified directory you can use the confs parameter:

java -jar ivy.jar -retrieve "plugin1/[artifact].[ext]" -confs plugin1

Finally, if you still want to use a programming API, you could invoke the run method called by the main class

http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/Main.java?view=markup

Update 1

Groovy has built in support for invoking ivy tasks

import groovy.xml.NamespaceBuilder

def ant = new AntBuilder()
def ivy = NamespaceBuilder.newInstance(ant, 'antlib:org.apache.ivy.ant')

ivy.settings(file:"ivysettings.xml")
ivy.retrieve(pattern:"lib/[conf]/[artifact].[ext]")
ivy.report(toDir:'reports', graph:false) 

Update 2

To set the location of your local Maven repository you need to use an ivysettings.xml file.

<ivysettings>
  <settings defaultResolver='nexus' />
  <resolvers>
    <ibiblio name='nexus' root='http://myhost.mydomanin.com:8081/nexus' m2compatible='true' />
  </resolvers>
</ivysettings>
Mark O'Connor
thats a way to do it .. ,but since ivy its a java API why not call ivy methods , and set IVY settings from code ,
shay
I suppose there is no reason why not. I'm sure if you open up the source code you'll discover all of ivy's goodness. Remember Ivy's primary usecase is a plugin for ANT, but it has been successfully embedded in Groovy , Grails and Gradle
Mark O'Connor
yes, this i know , also i know digging in source code with no api its complicated , maybe someone is know how to
shay
Use the groovy example I gave you. Don't forget that it's possible to compile groovy into Java bytecode. That's an example for another day
Mark O'Connor
i used you update see updated querstion , how can i add a proper comment with code ?
shay
I'm done. Doesn't look like you're going to accept my proposed solution. You've also expanded the scope of your original question to now include archiva configuration..... Can I point out that a far simpler solution would be to download your required jars using HTTP from the Maven repository.
Mark O'Connor
i simply don't understand why an opensource API could be so closed , i dont want to use XML's ,and i have no problem downloading my self using HTTP , just want to know what are the dependencies and what to download , why so complicated , i am on the edge for giving up on IVY
shay
You're being unreasonable. Calling the internal java methods can never be considered an API. Ivy was primarily designed as an ANT plugin. You'll discover that Maven is even less accessible. My parting piece of advice is that Sonatype have released a new programmable API for Maven 3.0. Perhaps that's where you should look.
Mark O'Connor