需求
idea上搭建maven项目 mainmodule,mainmodule依赖modulea和 moduleb,moduleb依赖modulea。
modulea 和moduleb中只有serve层到数据库层的文件,即这两个模块的maven项目,只有src/main/java文件夹。
方式一:mainmodule引用modulea和moduleb的jar形式
即将modulea和moduleb编译后的jar包编译到mainmodule的lib文件中。
运行项目的时候mainmodule会走modulea和moduleb的源码,mainmodule勾选自动编译或者手动编译mainmodule,修改modulea和moduleb的代码后,会即时生效。
步骤:
1.导入maven项目:mainmodule如图:
2.mainmodule(pom.xml)如下图:
3.如图引maven项目:modulea和moduleb
4.modulea(pom.xml):
5.moduleb(pom.xml)如下图:
6.查看mainmodule是否依赖modulea和moduleb这两个项目:
说明:
这种方式,项目mainmodule加入modulea和moduleb会自动依赖源码。
方式二:mainmodule引用modulea和moduleb的源码形式
即将modulea和moduleb源码编译后输出到mainmodule的编译路径下面。
步骤:
1.导入maven项目mainmodule
2.mainmodule(pom.xml)如下图:modulea和moduleb.jar范围为:provided(表示运行时,不会将包放进lib里面)
,
3.如图引入maven项目:modulea和moduleb
4.modulea(pom.xml):,
5.moduleb(pom.xml):
6.设置mainmodule
说明:
这种方式,项目mainmodule直接运行的是modulea和moduleb源码而不是jia包。
方式三:使用pom.xml的
<parent></parent>
标签。以后补齐
总结
不同点:
- 方式一:build artifacts后,modulea和moduleb以jar的形式存在mainmodule编译后的的lib文件夹下面。
- 方式二:build artifacts后,modulea和moduleb以源码的形式存在mainmodule编译后mainmodule\target\mainmodule\web-inf\classes文件夹的下面。
相同点:
- mainmodule的自动编译或者手动编译后,修改modulea和moduleb的代码,会即时生效。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论