今天在使用Gradle时,遇到一个很奇怪的问题,我在本机上运行的很好,但在另外一台机器上总是报错
错误内容:
java.io.IOException: 设备未就绪。 at java.io.WinNTFileSystem.canonicalize0(Native Method) at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:375)
于是,我就百度,大概告诉我的是,确认路径是否正确。
刚开始很迷茫,不知道要确认是哪里的路径,然后,我发现,那台机器上,没有配置gradle环境。
配好环境后,还是报错。 第一次会提示一个buildship的错误,于是,我就想是不是buildship插件没装好。。
再然后,我干脆启用eclipse的错误报告,查看详细内容,发现,确实是读取文件路径出了问题
这时候我想到了之前修改过一次路径。然后就一个个的配置文件排查。 最终发现,问题出在
org.eclipse.buildship.core.prefs
里面的路径全都是我提交上去的路径,也就是我本机的路径,刚好那台服务器上找不到这个盘符。所以就报了一个设备未就绪的错误。 修改配置后,一切正常。
所以,Gradle项目下下来之后,还要配置好org.eclipse.buildship.core.prefs里面的具体路径,才能保证Gradle正常构建。
最后把配置文件贴上来,以供参考
GRADLE_BUILD_COMMANDS=org.eclipse.jdt.core.javabuilder,org.eclipse.wst.common.project.facet.core.builder,org.eclipse.wst.validation.validationbuilder
GRADLE_FILTERS=1.0-projectRelativePath-matches-false-false-build,1.0-projectRelativePath-matches-false-false-.gradle GRADLE_NATURES=org.eclipse.jdt.core.javanature,org.eclipse.wst.common.project.facet.core.nature,org.eclipse.wst.common.modulecore.ModuleCoreNature,org.eclipse.jem.workbench.JavaEMFNature build.commands=org.eclipse.jdt.core.javabuilder,org.eclipse.wst.common.project.facet.core.builder,org.eclipse.wst.validation.validationbuilder connection.arguments= connection.gradle.distribution=GRADLE_DISTRIBUTION(LOCAL_INSTALLATION(C\:\\Tools\\gradle-2.10-all\\gradle-2.10)) connection.gradle.user.home=C\:\\Tools\\gradle-2.10-all\\gradle-2.10 connection.java.home=C\:\\Java\\jdk7 connection.jvm.arguments=-server -Xms128m -Xmx256m connection.project.dir= derived.resources=.gradle,build eclipse.preferences.version=1 natures=org.eclipse.jdt.core.javanature,org.eclipse.wst.common.project.facet.core.nature,org.eclipse.wst.common.modulecore.ModuleCoreNature,org.eclipse.jem.workbench.JavaEMFNature project.path=\:但也不完全只是org.eclipse.buildship.core.prefs 文件里面配置,也可能是需要配置 gradle.prefs
配置如下:
{
"1.0": { "project_path": ":", "project_dir": "D:\\eclipse\\myspace\\gtopTracker", "connection_project_dir": "D:\\eclipse\\myspace\\gtopTracker", "connection_gradle_user_home": "D:\\devbase\\gradle-2.10", "connection_gradle_distribution": "GRADLE_DISTRIBUTION(LOCAL_INSTALLATION(D:\\devbase\\gradle-2.10))", "connection_java_home": "C:\\Program Files\\Java\\jdk1.7.0_60", "connection_jvm_arguments": "-server -Xms128m -Xmx256m", "connection_arguments": "" } }如果第一种方式不行,就试试第二种吧,我这可能因为Eclipse mars 版本不一样,存在这样的区别。
写这篇文章,希望给自己一个记录,便于以后出现类似问题时,可以参考解决,也希望本文能够对你有所帮助!