该标签会让 Maven 自动到本地仓库或远程仓库去查找构件,找到后会自动创建项目级别的资源库,然后会将资源库同步到依赖此构件的模块的 classpath 中,也就是模块的依赖库中,如下图所示: classpath 就是类路径,作为编辑器的输入参数,这个参数指定了很多的路径,就是告诉编译器到指定的路径下去查找需要的类文件。
这些项目引入的依赖资源(构件)都是通过 Maven 发布到本地的 Maven 仓库中的,可以是 class 文件也可以是 java 源代码文件。
当构建项目时(也就是编译项目),会到 classpath 指定的路径下查找需要的类文件,如果是源文件会自动编译成 class 文件。
依赖库也好,资源库也罢,其实都只是存储着类文件的实际路径而已。
当你在运行代码时,比如测试某个方法时,会先构建项目(编译项目),IDEA 就会去运行编译指令,并将 classpath 作为参数传给指令,参数 classpath 指定了很多路径,告诉编译器要找关联类文件时就到这些路径下去查找。
IDEA 在编译Java源文件时,其实就是去执行了下面的命令:
javac -classpath path1:path2:path3 -d /Users/liaowenxiong/Documents/IdeaProjects/struts2-tag/target/classes *.java
注:项目依赖的构件,也可以表述成项目依赖的资源,或者表述成项目依赖的 jar 包/文件