springcloud工程总是有很多的module,虽然module可以单独打包使用,可以参见文章springboot打包,但如果每个moudle都需要打包处理,肯定浪费很多时间,并且做了大量的无用功。
这里介绍可以通过父工程进行打包的方法,编辑器使用idea
1、父工程pom配置
父工程的pom文件添加如下配置
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.7.RELEASE</version>
<relativePath/>
</parent>
<groupId>com.jianggj</groupId>
<artifactId>springcloud</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
其中 <packaging>pom</packaging> 一定配置成 pom ,默认工程可能会有jar或者war的,不配置pom在执行maven打包时会报错
继续配置需要打包的module
<modules>
<module>eureka</module>
<module>customer</module>
<module>product</module>
</modules>
然后加上一些依赖包,这里就是正常的配置了
在build里面配置上跳过测试内容
<build>
<finalName>springcloud</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
2、子工程配置
打开子工程的pom内容,参加如下的配置
<!--<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.7.RELEASE</version>
<relativePath/> <!– lookup parent from repository –>
</parent>-->
<!-- <parent>
<groupId>com.xxxx</groupId>
<artifactId>springcloud</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>-->
<groupId>com.xxxx</groupId>
<artifactId>product</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>product</name>
<description>Demo project for Spring Boot</description>
第一段注释内容有的文章说如果在父工程中已配置可以不使用,可是我注释在打包会报错,因为有测试的内容,所以在我打包的时候,第一段内容还原使用了,第二段注释部分,有的文章上说加上父级(如果使用此处第一段需要注释),但是我加上以后打包出来的子工程都是父工程的名字,不知道是什么原因,所以给注释掉了,这样子工程打包出来的就是子工程名字。
下面的build依然配置上跳过测试的内容,和使用的打包插件maven
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
其他的子工程类似配置即可
3、执行maven操作
因为在idea中操作的,在窗口右侧有maven菜单,执行package即可在控制台看到打包日志信息

最后控制台提示如下信息表示已经打包成功

然后到项目目录的子工程target下看到打包后的jar文件
以上内容也是根据一些操作进行的总结,希望对大家有帮助。
如有侵权,请告知删除。
本文介绍了如何通过SpringCloud的父工程配置,一次性打包多个子模块,详细讲述了父工程和子工程的pom.xml配置方法,以及在IDEA中执行maven package的操作步骤,旨在帮助开发者提高效率。

3274

被折叠的 条评论
为什么被折叠?



