Re: Re: making the most of Groovy in Action 2nd edition

Dimitar Vassilev <[email protected]>
Newsgroups gmane.comp.lang.groovy.user
Message-ID <CAF+AZZVfkg3js6=oA_zTMyX1G6Cu1SqgY-k68ifZzeyX524p_Q@mail.gmail.com>
Thanks Paul and Erik!
My needs are to browse the code examples and run them to improve my
understanding. So I rather download the Groovy 2.4 or use
http://groovyconsole.appspot.com
My groovy experience so far is writing  medium-difficulty declarative
pipelines for Jenkins. After seeing some peer inspirations how to write
shell scripts with groovy I decided to invest some time.
Hope this clears what I want to achieve.
Dimitar

На вт, 2.04.2024 г. в 19:21 Nelson, Erick <Erick.Nelson-NXabUB82sh5Wk0Htik3J/[email protected]>
написа:

> Not sure if this is the best way to do this, but I wrap antbuilder in my
> own class so that I can get ant event messages to my logger
>
>
>
> *package* script.ant
>
>
>
> *import* groovy.ant.AntBuilder *as* AB
>
> *import* org.apache.tools.ant.BuildEvent
>
> *import* org.apache.tools.ant.BuildLogger
>
>
>
> @groovy.util.logging.Slf4j
>
> *class* AntBuilder {
>
>     *static* AB newInstance () {
>
>         AB ab = *new* AB()
>
>         ab.project.buildListeners.each { ab.project.removeBuildListener(it)
> }
>
>         ab.antProject.addBuildListener(*new* BuildLogger() {
>
>                     @Override *public* *void* buildStarted (BuildEvent
> event) { }
>
>                     @Override *public* *void* buildFinished (BuildEvent
> event) { }
>
>                     @Override *public* *void* targetStarted (BuildEvent
> event) { }
>
>                     @Override *public* *void* targetFinished (BuildEvent
> event) { }
>
>                    @Override *public* *void* taskStarted (BuildEvent event)
> { }
>
>                     @Override *public* *void* taskFinished (BuildEvent
> event) { }
>
>                     @Override *public* *void* messageLogged (BuildEvent
> event) {
>
>                         *if* (event?.task) *log*.info("[{}] {}", event.task.taskName,
> event.message)
>
>                     }
>
>                     @Override *public* *void* setMessageOutputLevel (*int*
> level) { }
>
>                     @Override *public* *void* setOutputPrintStream
> (PrintStream output) { }
>
>                     @Override *public* *void* setEmacsMode (*boolean*
> emacsMode) { }
>
>                     @Override *public* *void* setErrorPrintStream
> (PrintStream err) { }
>
>                 })
>
>         ab
>
>     }
>
> }
>
>
>
>
>
> *From: *Paul King <[email protected]>
> *Date: *Tuesday, April 2, 2024 at 5:37 AM
> *To: *users-GSC0n/0aZo1d/SJB6HiN2Ni2O/[email protected] <users-GSC0n/0aZo1d/SJB6HiN2Ni2O/[email protected]>
> *Subject: *[EXT] Re: making the most of Groovy in Action 2nd edition
>
> Hi Dimitar,
>
> From Groovy 4, Groovy's "module" jars are fully-compliant with the
> JPMS rule disallowing split packages. The Groovy 3 and 4 release notes
> have more details.
>
> But basically, for the example you are showing, AntBuilder is now in
> the groovy.ant package, so if you add the appropriate import, you'll
> be good to go. AntBuilder was in the groovy.util package in earlier
> Groovy versions, and so didn't need the import. Mind you, there will
> likely be numerous places where such changes are needed.
>
> We haven't produced an updated version of those examples for Groovy 4.
>
> Cheers, Paul.
>
> On Tue, Apr 2, 2024 at 8:01 PM Dimitar Vassilev
> <[email protected]> wrote:
> >
> > Hi all,
> >
> > After a bit of extensive bashing, I found some time to re-read Groovy in
> Action 2nd edition.
> > I've downloaded the source code from the publisher also and am wondering
> how to make the most from the book provided I run Groovy 4.0.20/Mac 12.7.4
> > Running groovysh from the console is fine, but it doesn't always print
> the examples
> > going into the groovy book source
> >  GroovyInAction % groovy alltests.groovy
> > org.codehaus.groovy.control.MultipleCompilationErrorsException: startup
> failed:
> > /Users/xxxx/GroovyInAction/alltests.groovy: 2: unable to resolve class
> AntBuilder
> >  @ line 2, column 15.
> >        def ant = new AntBuilder()
> >                  ^
> >
> > 1 error
> > Thanks!
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.