Hi,
as groovy is interpreted (better: compiled every time) as it runs,
I found a nice idea, to compile the programm and let it run.
for the complete solution, look at :
http://docs.codehaus.org/display/GROOVY/WrappingGroovyScript
very easy going
as groovy is interpreted (better: compiled every time) as it runs,
I found a nice idea, to compile the programm and let it run.
for the complete solution, look at :
http://docs.codehaus.org/display/GROOVY/WrappingGroovyScript
very easy going
fest@maxdata:~/intranet/htdocs/gutacht/versand> groovy wrapper.groovy -c -m pdfThis is the wrapper.groovy
[echo] Compiling pdf.groovy
[jar] Building jar: /home/fest/intranet/htdocs/gutacht/versand/pdf.jar
[echo] Run script using: 'java -jar pdf.jar ...'
fest@maxdata:~/intranet/htdocs/gutacht/versand>
fest@maxdata:~/intranet/htdocs/gutacht/versand>
fest@maxdata:~/intranet/htdocs/gutacht/versand> java -jar pdf.jar 1 2 3
Anzahl Argumente 3
Usage: pdf Gutachten-nr Datei Zeile1 Zeile
fest@maxdata:~/intranet/htdocs/gutacht/versand>
/* * Copyright 2002-2007 the original author or authors. * * Licensed 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 * * http://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. */ /** * Wrap a script and groovy jars to an executable jar */ def cli = new CliBuilder() cli.h( longOpt: 'help', required: false, 'show usage information' ) cli.d( longOpt: 'destfile', argName: 'destfile', required: false, args: 1, 'jar destintation filename, defaults to {mainclass}.jar' ) cli.m( longOpt: 'mainclass', argName: 'mainclass', required: true, args: 1, 'fully qualified main class, eg. HelloWorld' ) cli.c( longOpt: 'groovyc', required: false, 'Run groovyc' ) //-------------------------------------------------------------------------- def opt = cli.parse(args) if (!opt) { return } if (opt.h) { cli.usage(); return } def mainClass = opt.m def scriptBase = mainClass.replace( '.', '/' ) def scriptFile = new File( scriptBase + '.groovy' ) if (!scriptFile.canRead()) { println "Cannot read script file: '${scriptFile}'" return } def destFile = scriptBase + '.jar' if (opt.d) { destFile = opt.d } //-------------------------------------------------------------------------- def ant = new AntBuilder() if (opt.c) { ant.echo( "Compiling ${scriptFile}" ) org.codehaus.groovy.tools.FileSystemCompiler.main( [ scriptFile ] as String[] ) } def GROOVY_HOME = new File( System.getenv('GROOVY_HOME') ) if (!GROOVY_HOME.canRead()) { ant.echo( "Missing environment variable GROOVY_HOME: '${GROOVY_HOME}'" ) return } ant.jar( destfile: destFile, compress: true, index: true ) { fileset( dir: '.', includes: scriptBase + '*.class' ) zipgroupfileset( dir: GROOVY_HOME, includes: 'embeddable/groovy-all-*.jar' ) zipgroupfileset( dir: GROOVY_HOME, includes: 'lib/commons*.jar' ) // add more jars here manifest { attribute( name: 'Main-Class', value: mainClass ) } } ant.echo( "Run script using: \'java -jar ${destFile} ...\'" )
No comments:
Post a Comment