Oops. Sorry... you're right. I didn't look that close at the first failure and 
it's definitely not a ClassNotFoundException. It's a legitimate failure because 
I haven't quite finished the task yet. However, the second issue is actually my 
bigger concern.

Also, I was trying to be cute and make this look a little cleaner than it 
actually is, but it turns out the problem doesn't manifest itself if you do it 
the way I have presented it. Here's a lot more information. The http-builder 
module for Groovy has a range defined for its dependency on Groovy 
[1.5,1.7.99]. This causes significant performance issues for my plugin because 
Gradle always downloads all the .pom files it can find in that range. I 
uploaded a version of that jar with an .ivy file that only references Groovy 
1.7.6 to a local artifactory server and am trying to use that. The build.gradle 
file is below. The problem manifests itself when I try to use this 'fixed' 
version.

The first time I run it, it downloads all the dependencies and then throws the 
legitimate exception. The second time I run it, I get this:

./gradlew upload -s
:upload

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/vkolovos/tmp/gradle-test/build.gradle' line: 21

* What went wrong:
Execution failed for task ':upload'.
Cause: java.lang.NoClassDefFoundError: net/sf/json/JSONObject

* Try:
Run with -d option to get more details. Run with -S option to get the full 
(very verbose) stacktrace.

* Exception is:
org.gradle.api.tasks.LocationAwareTaskExecutionException: Build file 
'/Users/vkolovos/tmp/gradle-test/build.gradle' line: 21
Execution failed for task ':upload'.
        at 
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(DefaultTaskExecuter.java:66)
        at 
org.gradle.api.internal.tasks.DefaultTaskExecuter.execute(DefaultTaskExecuter.java:43)
        at 
org.gradle.api.internal.project.taskfactory.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:32)
        at 
org.gradle.api.internal.project.taskfactory.ExecutionShortCircuitTaskExecuter.execute(ExecutionShortCircuitTaskExecuter.java:50)
        at 
org.gradle.api.internal.tasks.SkipTaskExecuter.doExecute(SkipTaskExecuter.java:57)
        at 
org.gradle.api.internal.tasks.SkipTaskExecuter.execute(SkipTaskExecuter.java:35)
        at 
org.gradle.api.internal.tasks.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:32)
        at org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:231)
        at 
org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:167)
        at 
org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:160)
        at 
org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:78)
        at 
org.gradle.execution.TaskNameResolvingBuildExecuter.execute(TaskNameResolvingBuildExecuter.java:113)
        at 
org.gradle.execution.DelegatingBuildExecuter.execute(DelegatingBuildExecuter.java:54)
        at 
org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:153)
        at 
org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:107)
        at 
org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:75)
        at org.gradle.launcher.RunBuildAction.execute(RunBuildAction.java:41)
        at org.gradle.launcher.RunBuildAction.execute(RunBuildAction.java:27)
        at 
org.gradle.launcher.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:209)
        at 
org.gradle.launcher.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:193)
        at org.gradle.launcher.Main.execute(Main.java:55)
        at org.gradle.launcher.Main.main(Main.java:40)
        at 
org.gradle.launcher.ProcessBootstrap.runNoExit(ProcessBootstrap.java:46)
        at org.gradle.launcher.ProcessBootstrap.run(ProcessBootstrap.java:28)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:24)
        at 
org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:33)
        at org.gradle.wrapper.Wrapper.execute(Wrapper.java:51)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:37)
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: 
java.lang.NoClassDefFoundError: net/sf/json/JSONObject
        at 
org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:444)
        at 
org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:432)
        at 
org.gradle.api.internal.tasks.DefaultTaskExecuter.executeActions(DefaultTaskExecuter.java:58)
        ... 27 more
Caused by: java.lang.NoClassDefFoundError: net/sf/json/JSONObject
        at groovyx.net.http.HTTPBuilder.<init>(HTTPBuilder.java:181)
        at groovyx.net.http.HTTPBuilder.<init>(HTTPBuilder.java:204)
        at groovyx.net.http.RESTClient.<init>(RESTClient.java:79)
        at 
build_ipqh82fvq84fdeap0en5aeamj$_run_closure1_closure2.doCall(/Users/vkolovos/tmp/gradle-test/build.gradle:21)
        ... 30 more
Caused by: java.lang.ClassNotFoundException: net.sf.json.JSONObject
        ... 34 more


BUILD FAILED

Total time: 7.509 secs


build.gradle
-------------------------------
apply plugin: 'java'

buildscript {
    remoteIvyPath = 'http://10.228.11.203:8081/artifactory/libs-release'
    repositories {
        add(new org.apache.ivy.plugins.resolver.URLResolver()) {
            name = 'remoteIvyRepository'
            addArtifactPattern 
"${remoteIvyPath}/[organisation]/[module]/[revision]/[artifact](.[ext])"
            addIvyPattern 
"${remoteIvyPath}/[organisation]/[module]/[revision]/ivy.xml"
            m2compatible = true
        }
        mavenRepo name: 'libs-repo', urls: remoteIvyPath
    }
    dependencies {
        classpath group: 'org.codehaus.groovy.modules.http-builder', name: 
'http-builder', version: '0.5.1-ivyfix'
    }
}

task upload {
    doFirst {
        def http = new 
groovyx.net.http.RESTClient('http://my.artifactserver.com/')
        http.auth.basic 'admin', 'super secret password'
        http.put( path: '/libs-release-local/foo',
                  contentType: groovyx.net.http.ContentType.BINARY,
                  body: (new File(project.libsDir, 'gradle-test.jar').bytes)
        )
    }
}


Thanks,

Val



---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to