也是刚刚接触 vs code,但是一见钟情。
最近在试着使用 nim language,推荐用 vs code,就试用了一下,然后一发不可收拾。于是有了一个大胆的想法,干脆全部转到 vs code 上来吧,现在的情况是什么呢?前段用 webstorm/sublime,java 用 idea,python 用 PyCharm, ruby 用 RubyMine, c# 用 vs express,多麻烦啊。
vs code 其实就是的编辑器,是个马甲,但是各种语言都可以实现对应的插件,包装成一个 ide,这很好,很先进!最最最关键的是,开源,免费!
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
如微软的Visual Studio系列,作为 c++/c# IDE;
Java 的 IDE 如 Eclipse 和 IntelliJ IDEA。
vs code 并不是一个 IDE,它是个编辑器,是个有理想的编辑器,可以通过相应语言的插件,将其包装成一个 IDE。
vi 也是一个编辑器,很多程序员就是使用 vi 来做开发,构建用独立的工具,比如 make,ant,maven,gradle 等等。ctags 用来对源代码中的符号建索引。。。。
那么对于程序员来说,怎样的编辑器来算是好用的呢?
上述特性里面,有些是 vs code 可以做的,有些是必须由插件来完成的。比如符号和依赖管理等跟语言特征相关的,那就必须由相应语言的插件来完成,你不能在使用 vs code 时,因为代码无法跳转到definition,就骂 vs code 不智能。
尽管 idea 体验也很不错,但有时还是感觉太臃肿了,不够流畅。
当然,必须承认 vs code 肯定无法匹敌 idea 所提供的完整特性,对于初学者来说,idea/eclipse 绝对是必经之路。然而,作为程序员,我们也必须清楚,设计是一种取舍,idea 提供的无微不至的保姆一般的图形界面,终将会显得友好但啰嗦,会有那么一天,你成熟了,长大了,就嫌她啰里啰嗦了。
https://code.visualstudio.com/docs/languages/java
按照官方文档,老老实实的安装好 java 相关的 extensions。
简单来说:
VS Code Java IDE =
编辑器:vs code
构建工具: maven/gradle
语言支持:Eclipse ™ JDT Language Server
有些功能如:
等等!很显然,vs code 不会提供这些语言级别的特性,这也是为什么 JetBrains 有那么多产品的原因:
vs code 通过 extension 来提供相应的 IDE 特性,对于 Java 来说,Language Support for Java™ by Red Hat 这个 extension 就是干这个事情的。
Provides Java ™ language support via Eclipse ™ JDT Language Server, which utilizes Eclipse ™ JDT, M2Eclipse and Buildship.
JDT 叫做 Eclipse Java Development Tools
The JDT project provides the tool plug-ins that implement a Java IDE supporting the development of any Java application,
再看看 JDT core 都提供了哪些 vs code 需要扩展的功能:
需要注意的是,该 extension 使用了 Eclipse IDE 相关的实现。当生成一个新的 java 项目时,比如通过 mvn 来 generate 一个HelloWorld 项目:
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.3
然后用 vs code 打开项目目录,会看到项目目录中会随之生成几个文件和目录:
1 .settings
1.1 org.eclipse.jdt.core.prefs
```
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.6
```
1.2 org.eclipse.m2e.core.prefs
```
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
```
2 .project
<projectDescription>
<name>spring-ldap-user-admin-samplename>
<comment>comment>
<projects>
projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuildername>
<arguments>
arguments>
buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Buildername>
<arguments>
arguments>
buildCommand>
buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanaturenature>
<nature>org.eclipse.m2e.core.maven2Naturenature>
natures>
projectDescription>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
attributes>
classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
attributes>
classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
attributes>
classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="maven.pomderived" value="true"/>
attributes>
classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
attributes>
classpathentry>
<classpathentry kind="output" path="target/classes"/>
classpath>
要注意: 这些文件都是 extension 自动生成的,如果目录下没有生成相应的文件,那么就会出现各种问题,jdt 相关的很多功能无法正常使用,比如符号跳转,自动导入等。
如果用 IDEA 打开 java 项目,同样会创建类似的文件,只不过结构和名称不一样而已。
如果碰到该警告信息,说明 java 项目在打开过程中出问题了,缺少 .classpath .project 文件。有可能是以下原因,比如:
这种情况下,符号跳转,自动补全,导入等等功能,肯定无法正常使用。
但是使用 mvn 进行构建是没有问题的,一定要清楚,mvn 是构建工具,只要源码完整正确,有 pom.xml 文件,那么 maven 就能正常工作。
另外,发现当项目同时支持 maven 和 gradle 时,vs code 创建项目会失败,导致 classpath 相关文件无法产生。这个时候将 build.gradle 删掉,只留下 pom.xml 文件,再次打开项目文件夹,就可以了。
如上图,正常启动的java项目,需要包含
其中 Java Projects 中包含 .classpath, .project, .settings
总之,用 vs code 来作为 java ide 完全没有问题,使用过程中难免会碰到些问题,多查阅,多思考,应该能解决。
整体上很流畅!