一、必要性
在JAVA开发过程中,由于项目的日渐庞大,一个不合理的模块化架构会让维护人员和开发人员对问题难以定位。所以项目的模块化显得尤为重要。合理的工程模块化可以有效的将Class耦合聚合为Jar耦合,可以提供明显的界限,有助于项目的维护和Bug的排查修正。
二、依赖关系图
Dao(数据访问)依赖Model(数据模型)
Service(业务逻辑)依赖Dao(数据访问)、Model(数据模型)、Utils(工具类)
Web(表现控制层)依赖Service(业务逻辑)、Model(数据模型)、Utils(工具类)
三、模块后的打包
对于以上的模块化拆分后,那么是否还可以像原来一样打成一个可执行Jar包呢?答案是可以的。
1、只需要在每个子工程的Pom.xml中配置包名即可。
<build>
<!-- 子工程Jar包名称 -->
<finalName>child-project</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.4.RELEASE</version>
</plugin>
</plugins>
</build>
2、然后在父工程的Pom.xml中将所有依赖的包打到一个Jar里面就行了。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.4.RELEASE</version>
<configuration><!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.ranen.springbootApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
<!--若需要不含依赖包的不可执行Jar包,可按如下配置-->
<!-- configuration>
<classifier>exec</classifier>
</configuration> -->
</execution>
</executions>
</plugin>
</plugins>
</build>
3、执行maven命令
mvn package