ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Amerige <Steve.Amer...@sas.com>
Subject Re: How to Execute Groovy 2.0 Code from an Ant File that has Groovy 1.7 Classpath
Date Mon, 06 Aug 2012 12:37:21 GMT
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.

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
>
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message