引言
模块关系:
- A:代表父工程
- B:代表WEB模块,主加载类所在模块
- S:业务处理模块
- D:数据处理模块
- E:基础模块
依赖关系如下:
- D依赖E
- S依赖E
- B依赖D,B依赖S
第一次进行maven多模块的打包,在打包过程中遇到了些许问题(模块关系与依赖关系如上所述):
- 如何进行打包
- 打包后jar包过小,检查后发现其中没有lib依赖
问题解决
**注意:**父工程中打包方式需要设置为
pom
,子工程中不需要设置打包方式示例:
<packaging>pom</packaging>
A模块pom文件配置
即父工程的pom.xml文件
注意:
- 父
pom
中一定要指定maven-compiler-plugin
和maven-surefire-plugin
插件。<packaging>pom</packaging>
打包类型写pom
包。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skipTests>true</skipTests> <!--默认关掉单元测试 -->
</configuration>
</plugin>
</plugins>
</build>
B模块pom文件配置
即
主加载类所在模块
,如果有多个模块有主加载类,则都需要加上注意:
- 子 pom 文件中一定要指定
spring-boot-maven-plugin
插件和主启动类的 全类名 。<packaging>jar</packaging>
打包类型写Jar
包。(这个我不确认,我没有加,如果不行的话可以加上试试)
<!--spring boot打包的话需要指定一个唯一的入门-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.lzj.WebDemoApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<!--可以把依赖的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
打包
在父工程下进行打包(有root标识)
**步骤:**点击Maven->点击父工程(如图中是
aws_demo
)->Lifecycle->clean->install->package打完包后就可以进行部署了
总结
经过上述打包操作后,拥有主加载类的模块中的jar包就可以在linux或windows中去运行了。