1、依赖和插件的关系:依赖中被你调用过的函数会与你的代码一起进行编译。对于插件来说呢,比如有些插件是帮助你进行编译工作的,你不用手动写。比如lombok依赖是为了方便用里面的注解@Data等,lombok插件是为了编译这些注解的,识别这些注解。
2、父pom和子pom关系:
并不是父POM中配置的所有依赖在不同的子类中都能用到、或者用到了但是不是统一版本、为解决这个,在父POM标签中定义依赖信息、在子POM中加入依赖的引入。
具体细节如下:在父POM中配置项目中使用到的依赖、但是不再是dependency标签中配置、因为此标签可以自动被继承,使用dependencyManagement标签,此标签中定义的dependency不会被子POM自动引入,必须在子类中使用dependency声明。
例如:子POM中关于junit的依赖的引入只需配置groupId和artifactId就可以了,版本和scope都已经在父POM中定义了。关键的地方是在父POM中的dependencyManagement标签中配置的依赖是不会主动引入到子项目中的,也就是说虽然在父POM中的dependencyManagement定义了junit的依赖,假如子类中没有关于junit的,那么子类就没有junit依赖的引入,并且假如子项目不想使用4.1版本的junit,还可以指定自己想要使用的junit版本,这样就完全覆盖了父POM中关于junit的定义、也就是说父POM中的junit定义与他无关。
3、build make compile区别:
compile:compile只是编译工程,既对编译路径下的源代码进行编译。 build:是构建工程,一般会经过清理,编译,打包等过程,生成最终可运行或可部署的程序包。