2014-04-15 56 views
1

使用vagrant,我git clone'我的Java應用程序到c:/shared。在我的Vagrantfile中,我指定我的主機的c:/shared將映射到我的虛擬機上的/home/vagrant/myappMaven Clean在Linux Vagrant共享驅動器上失敗

當我從虛擬機中運行mvn clean compile,我就遇到了這個錯誤:

core/myapp/target/classes/com/myapp/... 
     at org.apache.maven.plugin.clean.CleanMojo.execute(CleanMojo.java:215) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
     ... 19 more 
Caused by: java.io.IOException: Failed to delete core/myapp/target/classes/com/myapp/... 
     at org.apache.maven.plugin.clean.Cleaner.delete(Cleaner.java:249) 
     at org.apache.maven.plugin.clean.Cleaner.delete(Cleaner.java:191) 
     at org.apache.maven.plugin.clean.Cleaner.delete(Cleaner.java:158) 

然而,Maven構建成功,我的Windows(主機)的機器上。

運行ls給出的特權顯示爲問號奇數輸出(?):

[vagrant-centos65 parent]$ ls -lrot target/... 
ls: cannot access ... 
?????????? ? ? ?   ? $Class$$doMethod$1$1$$anonfun$apply$2.class 

我正在爲用戶kevin,那裏的/home/vagrant/myappvagrant擁有。但是,大多數(如果不是全部的話)myapp的目錄已廣爲開放(766777)權限。

在過去,我已經成功地在主機和來賓共享的目錄中編寫了訪客虛擬機。

我使用:

vagrant - 1.3.5 
Maven - 3.2.1 
VirtualBox - 4.3.8 

另外,我觀察到,這種特定文件夾(C:)不被每此post索引。

編輯即使與smb託管文件,我也看到相同的錯誤。

爲什麼構建會在主機上成功,但不是來賓?

+0

哪個流浪版?哪個同步類型的文件夾? – blackbuild

+0

流浪漢1.3.5。我從未指定過同步。我在主機上使用Windows –

回答

0

在編譯過程中,Maven的斯卡拉編譯源文件到CLASS文件。

一個.class文件的長度是。該文件的路徑長度爲〜100。

161 + ~90 = ~261 # exceeds the 255 path length on Windows

爲了解決這個問題,@monkjack告訴我如何限制生成的類文件的長度超過75個字符 - https://stackoverflow.com/a/23138361/409976

1

有一個類似的問題,但主要是因爲我愚蠢,並且Eclipse在主機上運行共享區域abd中的項目'自動構建'選中。

所以每次行家刪除目標文件時,日食會重新創建...