ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicolas Lalevée <nicolas.lale...@hibnet.org>
Subject Re: How to Execute Groovy 2.0 Code from an Ant File that has Groovy 1.7 Classpath
Date Mon, 06 Aug 2012 13:04:12 GMT

Le 6 août 2012 à 14:37, Steve Amerige a écrit :

> Some more info on this problem:
> 
> The issue is is a ClassLoader delegation model <http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html>
problem.  If the classpath has in it a path to Groovy 1.7.10 (as it does), then even if I
explicitly add the classpath in Ant as I do below, the 1.7.10 version will still be used because
it has already been loaded.  The only solutions I can think of include:
> 
> 1. Export all Ant properties and the current classpath to a file.  Use exec to run ant
with a classpath that puts the Groovy 2.0.1 directory before the other directories in the
classpath.  Then, load the ant properties and continue.
> 
> 2. Discover if there is any way of doing dynamic classloading that gets past the delegation
model problem.

There is a possible hack I guess.
There is a deprecated option to typedef : reverseLoader. If set to true, the classloader inheritance
is inverted.
I don't know why it is deprecated but surely for a good reason, so use it at your own risk
;)

Nicolas

> 
> If you have any ideas, please send them my way!  By mid-week, I'll wind up doing whatever
the best solution there is for this problem, even if it is (1) above.
> 
> Enjoy,
> Steve Amerige
> SAS Institute, Deployment Developer
> 
> On 8/3/2012 1:57 PM, Steve Amerige wrote:
>> Hi all,
>> 
>> My Ant script is being called with an environment including the classpath that includes
the folder containing the groovy-all-1.7.10.jar file.  I want to execute Groovy 2.0 code from
my Ant script.  I cannot change any aspect of how my Ant script is called.  I must limit my
solution to that which I can put into my own Ant script.
>> 
>> My challenge is to figure a way to run groovy 2.0 code.  My attempt below fails to
do this.  I'm hoping someone will have a solution.  Ideally, it will NOT involve using *exec
*because in the groovy code I will be using AntBuilder to access various tasks, macros, etc.
that are defined back on the Ant side and I want logging information to go to the same logfile
as well.
>> 
>> *Can anyone think of a way to execute some Groovy 2.0 code given that the classpath
already includes a 1.7 Groovy jar file?*
>> 
>> Thanks,
>> Steve Amerige
>> SAS Institute, Deployment Developer
>> 
>> Note below that the Groovy system version is 1.7.10, not 2.0.1.
>> 
>> <?xml version="1.0" encoding="UTF-8"?>
>> 
>> <project name="Ant" default="main" basedir=".">
>> 
>> <path id="my.classpath">
>> <fileset dir="C:/test/groovy-2.0.1/embeddable">
>> <include name="groovy-all-2.0.1.jar" />
>> </fileset>
>> </path>
>> 
>> <taskdef
>>   name="groovy"
>>   classname="org.codehaus.groovy.ant.Groovy"
>>   classpath="C:/test/groovy-2.0.1/embeddable/groovy-all-2.0.1.jar"/>
>> 
>> <target name="main">
>> <groovy classpathref="my.classpath">
>>        println GroovySystem.getVersion()
>>        println GroovySystem.class.getClassLoader().getURLs().join("\n")
>> </groovy>
>> </target>
>> 
>> </project>
>> 
>> 
>> Buildfile: C:\test\build.xml
>> main:
>>   [groovy] *1.7.10*
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-antlr.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-apache-bcel.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-apache-bsf.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-apache-log4j.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-apache-oro.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-apache-regexp.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-apache-resolver.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-commons-logging.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-commons-net.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-jai.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-javamail.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-jdepend.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-jmf.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-jsch.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-junit.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-launcher.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-netrexx.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-nodeps.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-starteam.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-stylebook.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-swing.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-trax.jar
>>   [groovy] file:/C:/eclipse/plugins/org.apache.ant_1.7.1.v20100518-1145/lib/ant-weblogic.jar
>>   [groovy] file:/C:/eclipse/configuration/org.eclipse.osgi/bundles/84/1/.cp/lib/remoteAnt.jar
>>   [groovy] file:/C:/eclipse/configuration/org.eclipse.osgi/bundles/772/1/.cp/lib/antdebug.jar
>>   [groovy] file:/C:/eclipse/configuration/org.eclipse.osgi/bundles/772/1/.cp/lib/remote.jar
>>   [groovy] file:/C:/eclipse/configuration/org.eclipse.osgi/bundles/1140/1/.cp/antlibs/remoteAnt.jar
>>   [groovy] file:/C:/Program%20Files/Java/jdk1.6.0_24/lib/tools.jar
>>   [groovy] file:/C:/eclipse/plugins/org.eclipse.swt.win32.win32.x86_64_3.6.2.v3659c.jar
>>   [groovy] file:/C:/test/ant-contrib/ant-contrib.jar
>>   [groovy] file:/C:/eclipse/plugins/org.codehaus.groovy_1.7.10.xx-20110918-1400-e36/lib/groovy-all-1.7.10.jar
>>   [groovy] file:/C:/test/json_0.2.0.0_SAS_20100917120500/JSON.jar
>> BUILD SUCCESSFUL
>> Total time: 1 second
>> 
>> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message