使用idea开发和运行
使用maven开发java项目,常见的情况是父工程下有多个子工程(使用聚合与继承),并且某个子模块A可能会依赖另一个模块B。在idea编码时,模块A中可以用到模块B中定义的类。但这时模块B并没有进行install,为啥模块A可以用到模块B中的类呢?用idea直接启动一个类,看看启动参数如下图:
idea启动时(不是用springboot插件启动),设置了-classpath指定了所依赖模块目录下的target/classes作为类路径。所以开发和直接运行时,模块可以直接使用它依赖的模块中的类。
使用maven工具
只是由于没有进行install,本地仓库没有对应jar文件。所以使用maven工具对模块A进行package时会报错。同理使用maven其它命令,或者插件(springboot插件的run)也会报错。
构建jar时记得先install所依赖的模块即可。