Vagrant抱怨主机路径丢失

时间:2015-09-02 16:18:39

标签: vagrant

我想将主机的Gradle用户主页与来宾同步,所以我正在使用这个Vagrant配置:

  config.vm.synced_folder `./gradlew -q gradleHome`, "/home/vagrant/.gradle"

我已经构建了一个Gradle任务来打印Gradle用户主页。当我刚刚运行此任务时,它工作正常:

C:\Users\chris\work\myproject>gradlew -q gradleHome
C:\Users\chris\.gradle

但是当我试图“流浪”时,它会抱怨:

* The host path of the shared folder is missing: C:/Users/chris/.gradle

请注意使用正向和反斜杠。该目录确实存在。

2 个答案:

答案 0 :(得分:1)

您可能需要将gradle命令解析为C:\ Users \ chris \ .gradle或C:/Users/chris/.gradle

您可以尝试使用以下3个值替换Vagrant文​​件和硬编码:

1. C:\\Users\\chris\\.gradle
2. C:/Users/chris/.gradle
3. C:\Users\chris\.gradle

只有前2个应该有效,第3个将返回错误。

显然smb仅为Windows用户保留,因此如果您与其他人共享它将无法正常工作,但我认为它是为Windows保留的,路径的分辨率会更宽容。

答案 1 :(得分:0)

运行Gradle返回的字符串中有换行符。我的Vagrantfile中的这一行可以解决问题:

config.vm.synced_folder `./gradlew -q gradleUserHome`.strip, "/home/vagrant/.gradle"

(我在命令中加了.strip。)