Accessing local ivy-repository located in userhome containing a white-space fails

I’m trying to pulish artifacts to my local ivy-repository located in my Windows userhome using:

uploadArchives {
    repositories {
        ivy {
            url System.getProperty("user.home") + "/.ivy"
        }
    }
}

Unfortunately my userhome directory contains a white-space, which will be url-encoded, by which the path to the ivy-repository get’s invalid; resulting in a FileNotException. Is there another work-around, than avoiding white-spaces in pathes?

Do you have a stack trace for the failure? (You can get a stack trace by running gradle with the -s option). Also, which version of Gradle? (you can run with -v to get the details).

Sure.

------------------------------------------------------------
Gradle 1.0-milestone-5
------------------------------------------------------------
Gradle build time: Dienstag, 25. Oktober 2011 05:56 Uhr MESZ
Groovy: 1.7.10
Ant: Apache Ant(TM) version 1.8.2 compiled on December 20 2010
Ivy: 2.2.0
JVM: 1.6.0_25 (Sun Microsystems Inc. 20.0-b11)
OS: Windows 7 6.1 amd64

Stacktrace is:

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':uploadArchives'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:71)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:48)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
        at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:243)
        at org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:192)
        at org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:177)
        at org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:83)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:36)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:70)
        at org.gradle.execution.DefaultBuildExecuter.access$300(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:80)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:70)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:63)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:157)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:112)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:80)
        at org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:42)
        at org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:28)
        at org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:32)
        at org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:21)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:233)
        at org.gradle.launcher.cli.CommandLineActionFactory$WithLoggingAction.execute(CommandLineActionFactory.java:217)
        at org.gradle.launcher.Main.doAction(Main.java:48)
        at org.gradle.launcher.exec.EntryPoint$1.execute(EntryPoint.java:53)
        at org.gradle.launcher.exec.EntryPoint$1.execute(EntryPoint.java:51)
        at org.gradle.launcher.exec.Execution.execute(Execution.java:28)
        at org.gradle.launcher.exec.EntryPoint.run(EntryPoint.java:39)
        at org.gradle.launcher.Main.main(Main.java:39)
        at org.gradle.launcher.ProcessBootstrap.runNoExit(ProcessBootstrap.java:51)
        at org.gradle.launcher.ProcessBootstrap.run(ProcessBootstrap.java:33)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:24)
Caused by: org.gradle.api.artifacts.PublishException: Could not publish configuration ':archives'.
        at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingArtifactPublisher.publish(ErrorHandlingArtifactPublisher.java:35)
        at org.gradle.api.tasks.Upload.upload(Upload.java:63)
        at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:158)
        at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:93)
        at org.gradle.api.tasks.Upload_Decorated.invokeMethod(Unknown Source)
        at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$2.execute(AnnotationProcessingTaskFactory.java:129)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$2.execute(AnnotationProcessingTaskFactory.java:127)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:63)
        ... 37 more
Caused by: org.gradle.api.UncheckedIOException: java.io.FileNotFoundException: C:\Users\Ralf%20Hergert\.ivy\ralfhergert\xml-handler.0\xml-handler-1.0.jar (Das System kann den angegebenen Pfad nicht finden)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyPublisher.publish(DefaultIvyDependencyPublisher.java:58)
        at org.gradle.api.internal.artifacts.ivyservice.IvyBackedArtifactPublisher.publish(IvyBackedArtifactPublisher.java:73)
        at org.gradle.api.internal.artifacts.ivyservice.ErrorHandlingArtifactPublisher.publish(ErrorHandlingArtifactPublisher.java:33)
        ... 45 more
Caused by: java.io.FileNotFoundException: C:\Users\Ralf%20Hergert\.ivy\ralfhergert\xml-handler.0\xml-handler-1.0.jar (
Das System kann den angegebenen Pfad nicht finden)
        at org.apache.ivy.util.FileUtil.copy(FileUtil.java:155)
        at org.apache.ivy.util.FileUtil.copy(FileUtil.java:130)
        at org.apache.ivy.plugins.repository.file.FileRepository.copy(FileRepository.java:76)
        at org.apache.ivy.plugins.repository.file.FileRepository.put(FileRepository.java:58)
        at org.apache.ivy.plugins.repository.AbstractRepository.put(AbstractRepository.java:130)
        at org.apache.ivy.plugins.resolver.RepositoryResolver.put(RepositoryResolver.java:234)
        at org.apache.ivy.plugins.resolver.RepositoryResolver.publish(RepositoryResolver.java:216)
        at org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:281)
        at org.apache.ivy.core.publish.PublishEngine.publish(PublishEngine.java:260)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyPublisher.publish(DefaultIvyDependencyPublis
her.java:54)
        ... 47 more

My guess is that the “%20” in " C:\Users\Ralf%20Hergert…" is causing this issue.

Can you try with m8a? There have been lots of dependency management related changes since m5.

I’m pretty sure this has been fixed already. Can you try with Gradle 1.0-milestone-8a?

You both were right: gradle-1.0-milestone-8a solves this issue. Thanks.