我在Windows上使用Scala-IDE,我的项目文件是流浪汉。我在vagrant中使用sbt
构建项目并运行服务器进行测试。对于部署,我使用sbt eclipse
创建了eclipse配置文件并导入到Scala-IDE中。我的问题是,当我尝试运行项目时,它无法访问我的.ivy2
文件,因为它们位于vagrant主文件夹中。我该如何解决这个问题?
Description Resource Path Location Type Project 'test-api' is missing required library: '\home\vagrant\.ivy2\cache\com.google.guava\guava\bundles\guava-18.0.jar' test-api Build path Build Path Problem
答案 0 :(得分:0)
我解决了我的问题。 sbt eclipse
命令为Eclipse创建两个文件。它们是.classpath
和.project
。您的.ivy2
路径位于.classpath
文件中。首先,我在我的vagrant目录中创建了一个新文件夹,并将我的主文件夹同步到这个新文件夹。将其添加到您的Vagrantfile
。
config.vm.synced_folder "data", "/home/vagrant"
然后我在项目文件夹中运行sbt eclipse
。它在我的.classpath
文件夹中创建了新的data
文件。我写了一个python脚本,可以读取和替换.classpath
文件中的路径。您应该在项目文件夹中运行此脚本,它将获取所有子目录并搜索.classpath
个文件。然后用正确的路径替换错误的路径。
import os
import glob
#variables
current_dir = "/home/vagrant/"
dest_dir = "C:/Users/Test/Desktop/vm/data/"
#list for directories
filesDepth1 = glob.glob('*/')
dirsDepth1 = list(filter(lambda f: os.path.isdir(f), filesDepth1))
print(dirsDepth1)
#list for files
for directory in dirsDepth1:
print(directory)
root = os.path.dirname(os.path.realpath(__file__)) + "/" + directory
for item in os.listdir(root):
if os.path.isfile(os.path.join(root, item)):
print(item)
if(item == ".classpath"):
FileName = root + "/" + item
with open(FileName) as f:
newText=f.read().replace(current_dir,dest_dir)
with open(FileName, "w") as f:
f.write(newText)