最近一直在使用Visual Studio Code(以下简称 vscode),不管在Mac还是在Windows上表现都很好。
不管写python还是javascript。今天写个简单的Java项目,所以就没用IDEA,直接用vscode。
后来发现一些问题:
当使用Gradle生成的项目每次用vscode打开的时候,项目中生成的.classpath文件就会被覆盖成初始版本。
但是恰好我的.classpath文件中加入和一个accessible的权限(因为使用了com.sun.net.httpserver,所以需要在.classpath里面加入
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/">
<accessrules>
<accessrule kind="accessible" pattern="com/sun/net/**"/>
</accessrules>
</classpathentry>
才能避免错误)。
现在每次重启vscode都会覆盖没有所以找到了这么一篇文章:
https://docs.gradle.org/4.1/dsl/org.gradle.plugins.ide.eclipse.model.EclipseClasspath.html
这里面写明可以使用whenMerged来让修改不被改动,因此我在build.gradle下面加入了以下内容:
eclipse.classpath.file.whenMerged {
def container = entries.find { it.path.contains 'org.eclipse.jdt.launching.JRE_CONTAINER' }
container.accessRules << new org.gradle.plugins.ide.eclipse.model.AccessRule("accessible", "com/sun/net/**")
}
现在一切都可以正常使用,以此为记录。