公司开发:多项目开发(含多模块),基于模块的开发

方式一:新建立Maven站点pom项目:

有一个父工程,有多个子模块。聚合工程。但是父工程不做具体的业务开发。仅仅只是做依赖包的版本管理。一个项目可以有多个子项目的做法。

第一步:创建一个父项目

搭建多模块项目,必须要有一个packaging为pom的根目录。

NEW -->project–>maven–>maven Project,点击下一步,进入new maven Project的Select project name and location界面(选择maven-Archetype-site-simple)

java maven 模块划分 maven分模块开发_创建项目


父工程不做具体的业务开发,所以删除src目录

java maven 模块划分 maven分模块开发_java maven 模块划分_02

父项目只有一个pom文件,用来管理所有子项目的jar包。

java maven 模块划分 maven分模块开发_maven_03

白话:空项目,只有pom文件。

第二步:创建普通模块

添加多个子模块

必须在父项目上点击右键:创建模块,不是创建项目。

java maven 模块划分 maven分模块开发_多模块_04


基本应用:选择maven-archetype-site-quickStart

Web应用:选择maven-archetype-webapp

java maven 模块划分 maven分模块开发_多模块_05


属于父工程:

java maven 模块划分 maven分模块开发_java maven 模块划分_06


注意子模块的路径:

java maven 模块划分 maven分模块开发_maven_07


有页面的地方就可以创建web项目。

java maven 模块划分 maven分模块开发_创建项目_08


新创建的项目必须观察颜色。

父子多模块工程也叫聚合工程。

第三步:模块之间调用

模块之间用坐标依赖: com.qf.service xiaomi-dao 1.0 ![在这里插入图片描述]() 代码使用: public class XiaoMiService { public String xiaomiService(){ //希望调用DAO 的能力 XiaoMiDAO dao = new XiaoMiDAO();

String res = dao.addXiaoMi(); 
    return "小米服务:"+res; } //测试 

  public static void main(String[] args) { 
        XiaoMiService xiaoMiService = new XiaoMiService(); 

        String service = xiaoMiService.xiaomiService();                             
        System.out.println(service);

}

}

测试的时候注意统一设置JDK的编码

java maven 模块划分 maven分模块开发_多模块_09


注意上面部分 就是多模块 但是注意指针部分 需要修改成 1.8 要不然编译时候回出现警告或者异常。

java maven 模块划分 maven分模块开发_创建项目_10


上面部分也要注意,都要修改成一致的

后面会给大家介绍同一修改的插件 ,但是此方法也需要学会。

扩展拔高[在第一种方案的基础上:(了解)

目录结构的变化:

子模块可以不用添加到父模块目录中:(修改了默认的目录结构)

java maven 模块划分 maven分模块开发_maven_11


注意我用箭头标注的地方

子模块可以不添加到父模块的目录中 但是还是依赖父模块 (需要特别注意)

目录选择注意,不放在父模块的下面

java maven 模块划分 maven分模块开发_maven_12


注意上面的剪头所指向的目录地址 并不在父模块的文件目录下

观察项目目录如下 就生成了一个 同父级目录相同的并且依赖父项目的模块

java maven 模块划分 maven分模块开发_多模块_13


方式二:创建项目,选择Empty project,类似Eclipse放多项目的方式。 这种方式可以不需要父工程。

第一步:创建空工程

java maven 模块划分 maven分模块开发_maven_14


效果:

选择SDK

java maven 模块划分 maven分模块开发_maven_15

第二步:创建模块项目(普通+web)
选择File–>New–>Module,进入New Module页面:
可以创建多个普通项目和web项目,都在这个空的工程中。
鼠标需要点在最外层External Libraries上,避免创建的模块属于某个模块

点击下方的包 进行 new module 创建新的模块

java maven 模块划分 maven分模块开发_maven_16

新建模块:

java maven 模块划分 maven分模块开发_创建项目_17

注意没有单独创建父工程:

java maven 模块划分 maven分模块开发_多模块_18

注意路径直接属于空工程中:

java maven 模块划分 maven分模块开发_创建项目_19


第三步:模块之间调用

打包:

java maven 模块划分 maven分模块开发_java maven 模块划分_20


坐标引用:

java maven 模块划分 maven分模块开发_maven_21

注意JDK编译版本:

一处:

java maven 模块划分 maven分模块开发_maven_22

二处:

java maven 模块划分 maven分模块开发_多模块_23


三处:

方式一:

java maven 模块划分 maven分模块开发_maven_24

方式二:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 <maven.compiler.source>1.7</maven.compiler.source>
 <maven.compiler.target>1.7</maven.compiler.target>

完成上面的设置之后 ,就可以很方便的互调用了。


作者:神豪VS勇士赢