I tried the code

@Grab('org.apache.commons:commons-digester3:3.2;transitive=false')
@GrabConfig(autoDownload=false)
import org.apache.commons.digester3.Digester

assert Digester.name.size() == 37

in a separate groovy file and executed it with the `groovy` command:

$ groovy testAutoDownloadGrapeConfigFalse.groovy
Caught: java.lang.NoClassDefFoundError: org/apache/commons/logging/Log
java.lang.NoClassDefFoundError: org/apache/commons/logging/Log
    at testAutoDownloadGrapeConfigFalse.run(testAutoDownloadGrapeConfigFalse.groovy:5)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
    ... 1 more

Setting transitive to true i.e. `@Grab('org.apache.commons:commons-digester3:3.2;transitive=true')` makes it work from the command line but it does not make the test work unfortunately.

Regards,

Per

On 7/13/25 17:46, Per Nyfelt wrote:

I checked again just now.

gradlew :test --tests=groovy.grape.GrapeIvyTest -Djunit.network=true
 Fails on testAutoDownloadGrapeConfigFalse with the following error:


org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
General error during conversion: Error grabbing Grapes -- [unresolved 
dependency: org.apache.commons#commons-digester3;3.2: not found]

java.lang.RuntimeException: Error grabbing Grapes -- [unresolved dependency: 
org.apache.commons#commons-digester3;3.2: not found]
        at groovy.grape.GrapeIvy.getDependencies(GrapeIvy.groovy:487)
        at groovy.grape.GrapeIvy.resolve(GrapeIvy.groovy:648)
        at groovy.grape.GrapeIvy.resolve(GrapeIvy.groovy:624)
        at groovy.grape.GrapeIvy.grab(GrapeIvy.groovy:288)
        at groovy.grape.Grape$1.run(Grape.java:172)
        at groovy.grape.Grape$1.run(Grape.java:158)
        at 
java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
        at groovy.grape.Grape.grab(Grape.java:158)
        at 
groovy.grape.GrabAnnotationTransformation.visit(GrabAnnotationTransformation.java:377)
        at 
org.codehaus.groovy.transform.ASTTransformationVisitor.lambda$addPhaseOperationsForGlobalTransforms$5(ASTTransformationVisitor.java:375)
        at 
org.codehaus.groovy.control.CompilationUnit$ISourceUnitOperation.doPhaseOperation(CompilationUnit.java:920)
        at 
org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:707)
        at 
org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:681)
        at 
groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:399)
        at 
groovy.lang.GroovyClassLoader.lambda$parseClass$5(GroovyClassLoader.java:345)
        at 
org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache.getAndPut(ConcurrentCommonCache.java:138)
        at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:345)
        at groovy.lang.GroovyShell.parseClass(GroovyShell.java:601)
        at groovy.lang.GroovyShell.parse(GroovyShell.java:614)
        at groovy.lang.GroovyShell.parse(GroovyShell.java:626)
        at groovy.lang.GroovyShell.evaluate(GroovyShell.java:488)
        at groovy.lang.GroovyShell.evaluate(GroovyShell.java:524)
        at groovy.lang.GroovyShell.evaluate(GroovyShell.java:508)
        at groovy.test.GroovyAssert.assertScript(GroovyAssert.java:103)
        at groovy.test.GroovyAssert.assertScript(GroovyAssert.java:93)
        at 
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:344)
        at 
groovy.grape.GrapeIvyTest.testAutoDownloadGrapeConfigFalse(GrapeIvyTest.groovy:429)
...

I can do `grape install org.apache.commons commons-digester3 3.2` on the command line without problem. Is it just me or is the test broken?

Regards,

Per

On 7/2/25 21:40, Per Nyfelt wrote:

Thanks Paul, adding junit.network=true enabled med to run the test.

On the master branch, the GrapeIvyTest fails on this test: testAutoDownloadGrapeConfigFalse()

Is that the case for you as well?

Regards,
Per

On 7/1/25 01:31, Paul King wrote:
There is a switch to turn off groovy.grape tests in certain circumstances. I am not sure it is defaulting correctly, but you can be sure it runs with:

gradlew :test --tests=groovy.grape.GrapeIvyTest -Djunit.network=true


On Tue, Jul 1, 2025 at 6:50 AM Per Nyfelt <p...@alipsa.se> wrote:

    I am trying to run the single test class
    groovy.grape.GrapeIvyTest (i.e. in the core) from the command
    line but cannot figure out the syntax

    gradlew :test --tests groovy.grape.GrapeIvyTest

    ...as hinted in the readme results in

    * What went wrong:
    Execution failed for task ':test'.
    > No tests found for given includes:
    [groovy.grape.GrapeIvyTest](--tests filter)

    Does anyone know?

    Best regards

    Per

Reply via email to