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