I think it would be better not relying on external dependencies for launching. Then you direcly start the jar.
You could do that in a two step process: - Launcher -- Options: debug, verbose, warn, error, ? -- maybe also: realm, host, username, passwd -- pass the rest options to 2nd step 1. Instantiates "raw" Ivy 2. Uses that Ivy to load its own dependencies 3. Start Main - Main Do the normal stuff Jan >-----Ursprüngliche Nachricht----- >Von: Xavier Hanin [mailto:[EMAIL PROTECTED] >Gesendet: Mittwoch, 4. Juli 2007 09:43 >An: [email protected] >Betreff: Re: svn commit: r552892 - /incubator/ivy/core/trunk/build.xml > >On 7/4/07, [EMAIL PROTECTED] ><[EMAIL PROTECTED]> wrote: >> >> As Ivy has a command line interface ... would it be useful, >if the jars >> are startable? > > >The problem is that Ivy for its command line usage has a dependency on >commons-cli. Thus it requires settings the classpath, which is >not handled >properly by the JAR specification (relative paths, not a very >good idea), >and one of the reasons behind JSR-277. > >But I've already wondered if it wouldn't make sense to get rid of this >dependency on commons-cli. I use the command line interface to >use Ivy as a >launcher, and having to get commons-cli (and its dependencies) in the >classpath for this makes it less straightforward to use. > >WDYT? > >Xavier > >Jan >> >> >> >> Index: build.xml >> =================================================================== >> --- build.xml (revision 553083) >> +++ build.xml (working copy) >> @@ -255,6 +255,7 @@ >> <attribute >name="Extension-name" value=" >> org.apache.ivy" /> >> <attribute >name="Build-Version" value="${ >> build.version}" /> >> <attribute >name="Bundle-Version" value="${ >> bundle.version}" /> >> + <attribute name="Main-Class" value=" >> org.apache.ivy.Main"/> >> </manifest> >> <fileset dir="${core.classes.build.dir}" /> >> <fileset dir="${ant.classes.build.dir}" /> >> @@ -270,6 +271,7 @@ >> <attribute >name="Implementation-Version" >> value="${build.version}" /> >> <attribute >name="Implementation-Vendor" >> value="Apache Software Foundation" /> >> <attribute >name="Build-Version" value="${ >> build.version}" /> >> + <attribute name="Main-Class" value=" >> org.apache.ivy.Main"/> >> </manifest> >> <fileset dir="${core.classes.build.dir}" /> >> <fileset >dir="${optional.classes.build.dir}" /> >> >> >> >> >> >> >> >-----Ursprüngliche Nachricht----- >> >Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] >> >Gesendet: Dienstag, 3. Juli 2007 18:07 >> >An: [EMAIL PROTECTED] >> >Betreff: svn commit: r552892 - /incubator/ivy/core/trunk/build.xml >> > >> >Author: xavier >> >Date: Tue Jul 3 09:06:31 2007 >> >New Revision: 552892 >> > >> >URL: http://svn.apache.org/viewvc?view=rev&rev=552892 >> >Log: >> >review jar manifest and generate small doc about jars (with >> >contribution from Tjeerd Verhagen) >> > >> >Modified: >> > incubator/ivy/core/trunk/build.xml >> > >> >Modified: incubator/ivy/core/trunk/build.xml >> >URL: >> >http://svn.apache.org/viewvc/incubator/ivy/core/trunk/build.xml >> >?view=diff&rev=552892&r1=552891&r2=552892 >> >=============================================================== >> >=============== >> >--- incubator/ivy/core/trunk/build.xml (original) >> >+++ incubator/ivy/core/trunk/build.xml Tue Jul 3 09:06:31 2007 >> >@@ -246,34 +246,43 @@ >> > manifest="${basedir}/MANIFEST.MF"> >> > <metainf dir="${basedir}" >> >includes="LICENSE,DISCLAIMER,NOTICE" /> >> > <manifest> >> >+ <attribute >> >name="Specification-Title" value="Apache Ivy with Ant tasks" /> >> >+ <attribute >> >name="Specification-Version" value="${build.version}" /> >> >+ <attribute >> >name="Specification-Vendor" value="Apache Software Foundation" /> >> >+ <attribute >> >name="Implementation-Title" value="org.apache.ivy" /> >> >+ <attribute >> >name="Implementation-Version" value="${build.version}" /> >> >+ <attribute >> >name="Implementation-Vendor" value="Apache Software Foundation" /> >> >+ <attribute >> >name="Extension-name" value="org.apache.ivy" /> >> > <attribute name="Build-Version" >> >value="${build.version}" /> >> > <attribute >> >name="Bundle-Version" value="${bundle.version}" /> >> >- <section name="org/apache/ivy"> >> >- <attribute >> >name="Extension-name" value="org.apache.ivy" /> >> >- <attribute >> >name="Specification-Title" value="Apache Ivy" /> >> >- <attribute >> >name="Specification-Version" value="${build.version}" /> >> >- <attribute >> >name="Specification-Vendor" value="Apache Software Foundation" /> >> >- <attribute >> >name="Implementation-Title" value="org.apache.tools.ant" /> >> >- <attribute >> >name="Implementation-Version" value="${build.version}" /> >> >- <attribute >> >name="Implementation-Vendor" value="Apache Software Foundation" /> >> >- </section> >> > </manifest> >> >- <fileset >> >dir="${core.classes.build.dir}" /> >> >- <fileset >> >dir="${ant.classes.build.dir}" /> >> >- <fileset >> >dir="${optional.classes.build.dir}" /> >> >+ <fileset dir="${core.classes.build.dir}" /> >> >+ <fileset dir="${ant.classes.build.dir}" /> >> >+ <fileset >dir="${optional.classes.build.dir}" /> >> > </jar> >> > <jar >> >destfile="${artifacts.build.dir}/${final.core.name}"> >> > <metainf dir="${basedir}" >> >includes="LICENSE,DISCLAIMER,NOTICE" /> >> > <manifest> >> >+ <attribute >> >name="Specification-Title" value="Apache Ivy Core (without Ant >> >tasks)" /> >> >+ <attribute >> >name="Specification-Version" value="${build.version}" /> >> >+ <attribute >> >name="Specification-Vendor" value="Apache Software Foundation" /> >> >+ <attribute >> >name="Implementation-Title" value="org.apache.ivy" /> >> >+ <attribute >> >name="Implementation-Version" value="${build.version}" /> >> >+ <attribute >> >name="Implementation-Vendor" value="Apache Software Foundation" /> >> > <attribute name="Build-Version" >> >value="${build.version}" /> >> > </manifest> >> > <fileset dir="${core.classes.build.dir}" /> >> > <fileset >dir="${optional.classes.build.dir}" /> >> > </jar> >> >+ <echo >> >file="${artifacts.build.dir}/readme.txt">The Ivy jars >> >explained${line.separator} >> >+${line.separator} >> >+${final.name} The full Ivy jar, including all Ivy >> >classes.${line.separator} >> >+${final.core.name} The Ivy core, eg everything but classes >> >dependent on Ant.${line.separator} >> >+ </echo> >> >+ >> > <!-- clean generated module properties file --> >> > <delete >> >file="${core.classes.build.dir}/module.properties" /> >> > </target> >> >- >> > >> > <!-- >> >================================================================= >> > PUBLISH LOCAL >> > >> > >> > >> > > > >-- >Xavier Hanin - Independent Java Consultant >http://xhab.blogspot.com/ >http://incubator.apache.org/ivy/ >http://www.xoocode.org/ >
