Visual Studio Code 使用Gradle生成项目后.classpath文件覆盖问题

最近一直在使用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/**")
}

现在一切都可以正常使用,以此为记录。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容