作用:包含了项目编译需要的环境信息,包含源码路径、编译后的class文件路径、依赖的jar包路径、依赖的外部项目信息、运行的容器信息等。
上模版:
<?xml version="1.0" encoding="UTF-8"?>
<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 kind="output" path="target/classes"/>
</classpath>
说明:
一、.classpath是eclipse或者idea中‘Java Build Path’设置内容的一种文本展示。
- 以classpath为根节点,子节点为classpathentry,每个classpathentry代表一个说明信息。
- 每个子节点classpathentry包含属性kind - 类型、output - 编译输出路径、path - 源文件路径。
二、kind值说明
- kind="src",表示source源文件,path=‘src’填入相对路径,即相对.classpath的路径(以此.classpath为根目录的路径)。添加属性combineaccessrules="false"时,表示对其他项目project的依赖<classpathentry combineaccessrules="false" kind="src" path="/bi"/>。
- kind="output",表示编译的class文件存放路径,path='output'填入相对路径。
- kind="lib",指定项目依赖的jar包路径。
- kind="con",表示程序运行的容器container或者环境。包含jre配置、maven配置等,如此外,还包含Server Runtime配置<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/8080"/>等其他配置信息。
- 关于.classpath中各节点的顺序,一般将源码放在最前面,否则会引起class加载问题。
小记:在学习过程中碰到了问题,查找解决办法,记录下过程。ps:习惯了很多自动化工具,反而遗忘了最基本的知识点,使用vscode开发,手动配置项目,可以从最基本的地方发现自己的不足,涨了姿势,挺舒服。
问题场景:vs code 使用maven构建多module项目,子module内执行main方法,报错找不到或无法加载主类。
可修改父级.classpath的配置解决。此处记录下学习到的.classpath知识。