springboot一个项目多模块打包(终于可以了,网络上的能在仔细点吗)。参考了很多,来个详细的。

有人说想要例子:

我把链接放这了:如果你觉得自己很放不想写,可以下载pom文件的案例

https://download.csdn.net/download/qq_28929589/10540018

首先这是我公司的项目结构

core不依赖谁

user依赖core

hr依赖user和core

hr是主模块,application的入口放在这里的

如果以后我在做一个项目比如hr1,我可以再次去依赖core和user。

core和user。就可以公用了。。。。

其次我的pom.xml的父文件

 

 
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  2. <modelVersion>4.0.0</modelVersion>

  3. <packaging>pom</packaging>

  4. <!-- 项目说明:这里作为聚合工程的父工程 -->

  5. <groupId>com.ewe</groupId>

  6. <artifactId>ewe-hr</artifactId>

  7. <version>1.0.0.RELEASE</version>

  8.  
  9. <!-- 继承说明:这里继承SpringBoot提供的父工程 -->

  10. <parent>

  11. <groupId>org.springframework.boot</groupId>

  12. <artifactId>spring-boot-starter-parent</artifactId>

  13. <version>1.5.9.RELEASE</version>

  14. </parent>

  15. <properties>

  16. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  17. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

  18. <java.version>1.7</java.version>

  19. </properties>

  20. <!-- 模块说明:这里声明多个子模块 -->

  21. <modules>

  22. <module>core</module>

  23. <module>hr</module>

  24. <module>user</module>

  25. </modules>

  26. <dependencyManagement>

  27. <!-- 模块说明:这里声明多个子模块 -->

  28. <dependencies>

  29. <!--子版本依赖-->

  30. <dependency>

  31. <groupId>com.ewe</groupId>

  32. <artifactId>core</artifactId>

  33. <version>0.0.1-SNAPSHOT</version>

  34. </dependency>

  35. <dependency>

  36. <groupId>com.ewe</groupId>

  37. <artifactId>user</artifactId>

  38. <version>0.0.1-SNAPSHOT</version>

  39. </dependency>

  40. <dependency>

  41. <groupId>com.ewe</groupId>

  42. <artifactId>hr</artifactId>

  43. <version>0.0.1-SNAPSHOT</version>

  44. </dependency>

  45. </dependencies>

  46. </dependencyManagement>

  47. </project>

切记父文件不需要打包。
不需要写

 

 <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
        
    </build>

 

再次我的core文件

 

 
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  2. <modelVersion>4.0.0</modelVersion>

  3. <packaging>pom</packaging>

  4. <!-- 项目说明:这里作为聚合工程的父工程 -->

  5. <groupId>com.ewe</groupId>

  6. <artifactId>ewe-hr</artifactId>

  7. <version>1.0.0.RELEASE</version>

  8.  
  9. <!-- 继承说明:这里继承SpringBoot提供的父工程 -->

  10. <parent>

  11. <groupId>org.springframework.boot</groupId>

  12. <artifactId>spring-boot-starter-parent</artifactId>

  13. <version>1.5.9.RELEASE</version>

  14. </parent>

  15. <properties>

  16. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  17. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

  18. <java.version>1.7</java.version>

  19. </properties>

  20. <!-- 模块说明:这里声明多个子模块 -->

  21. <modules>

  22. <module>core</module>

  23. <module>hr</module>

  24. <module>user</module>

  25. </modules>

  26. <dependencyManagement>

  27. <!-- 模块说明:这里声明多个子模块 -->

  28. <dependencies>

  29. <!--子版本依赖-->

  30. <dependency>

  31. <groupId>com.ewe</groupId>

  32. <artifactId>core</artifactId>

  33. <version>0.0.1-SNAPSHOT</version>

  34. </dependency>

  35. <dependency>

  36. <groupId>com.ewe</groupId>

  37. <artifactId>user</artifactId>

  38. <version>0.0.1-SNAPSHOT</version>

  39. </dependency>

  40. <dependency>

  41. <groupId>com.ewe</groupId>

  42. <artifactId>hr</artifactId>

  43. <version>0.0.1-SNAPSHOT</version>

  44. </dependency>

  45. </dependencies>

  46. </dependencyManagement>

  47. </project>

我的core文件不需要打包,因为我的主项目hr需要core包中的依赖,打包了就找不到了

 

然后我的user文件

 

 
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  2. <modelVersion>4.0.0</modelVersion>

  3. <parent>

  4. <groupId>com.ewe</groupId>

  5. <artifactId>ewe-hr</artifactId>

  6. <version>1.0.0.RELEASE</version>

  7. <relativePath>../pom.xml</relativePath>

  8. </parent>

  9. <artifactId>user</artifactId>

  10. <version>0.0.1-SNAPSHOT</version>

  11. <name>user</name>

  12. <description>user information</description>

  13. <dependencies>

  14. <dependency>

  15. <groupId>com.ewe</groupId>

  16. <artifactId>core</artifactId>

  17. </dependency>

  18.  
  19. </dependencies>

  20. <!-- Package as an executable jar -->

  21. <build>

  22. <resources>

  23. <resource>

  24. <directory>src/main/java</directory>

  25. <includes>

  26. <include>**/*.xml</include>

  27. </includes>

  28. </resource>

  29. <resource>

  30. <directory>src/main/resources</directory>

  31. <includes>

  32. <include>**.*</include>

  33. <include>**/*.*</include><!-- i18n能读取到 -->

  34. <include>**/*/*.*</include>

  35. </includes>

  36. </resource>

  37. </resources>

  38. </build>

  39. </project>


为什么user有build呢,因为依赖的打包的时候我只是指明了需要打包的目录resources

 

最后我的住主项目hr

 

 
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  2. <modelVersion>4.0.0</modelVersion>

  3. <artifactId>hr</artifactId>

  4. <name>hr</name>

  5. <version>0.0.1-SNAPSHOT</version>

  6. <packaging>jar</packaging>

  7.  
  8. <!-- 继承本项目的父工程 -->

  9. <parent>

  10. <groupId>com.ewe</groupId>

  11. <artifactId>ewe-hr</artifactId>

  12. <version>1.0.0.RELEASE</version>

  13. <relativePath>../pom.xml</relativePath>

  14. </parent>

  15. <dependencies>

  16. <dependency>

  17. <groupId>com.ewe</groupId>

  18. <artifactId>core</artifactId>

  19. </dependency>

  20. <dependency>

  21. <groupId>com.ewe</groupId>

  22. <artifactId>user</artifactId>

  23. </dependency>

  24. </dependencies>

  25. <!-- Package as an executable jar -->

  26. <build>

  27. <resources>

  28. <resource>

  29. <directory>src/main/java</directory>

  30. <includes>

  31. <include>**/*.xml</include>

  32. </includes>

  33. </resource>

  34. <resource>

  35. <directory>src/main/resources</directory>

  36. <includes>

  37. <include>**.*</include>

  38. <include>**/*.*</include><!-- i18n能读取到 -->

  39. <include>**/*/*.*</include>

  40. </includes>

  41. </resource>

  42. </resources>

  43. <plugins>

  44. <plugin>

  45. <groupId>org.springframework.boot</groupId>

  46. <artifactId>spring-boot-maven-plugin</artifactId>

  47.  
  48. <configuration>

  49. <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->

  50. <!-- 指定该Main Class为全局的唯一入口 -->

  51. <mainClass>com.ewe.Application</mainClass>

  52. <layout>ZIP</layout>

  53. </configuration>

  54. <executions>

  55. <execution>

  56. <goals>

  57. <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->

  58. </goals>

  59. </execution>

  60. </executions>

  61. </plugin>

  62. </plugins>

  63. <finalName>hr</finalName>

  64. </build>

  65. </project>


需要进行打包并指明main函数的入口

 

以上是解析如果有帮助你,点个赞,我也是从痛苦中过来的

对于Spring Boot多模块项目打包,可以按照以下步骤进行操作。 首先,你需要将项目源码导入到本地进行打包验证。这些源码括单工程构建打包和多模块打包的过程,可以放心使用。 在项目中,含了一个父工程、多个模块一个工具模块。每个子模块都有启动类,而工具模块没有。因此,这三者的pom文件可能会有所不同。根据项目的需求,你需要修改这些pom文件。之后,你可以使用IDEA的打包工具一键打包整个项目。 接下来,你需要修改每个子模块中有启动类的pom文件。在这段配置中,你需要加入以下内容: <build> <plugins> <plugin> <!--该插件主要用途:构建可执行的JAR--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> </resource> </resources> </build> 以上配置的作用括将java目录中的*.xml文件进行打包,并设置自己目录下的配置文件。 通过按照以上步骤进行操作,你就可以成功打包Spring Boot多模块项目了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot模块打包源码](https://download.csdn.net/download/zhangcongyi420/88153258)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SpringBoot模块项目打包教程,超详细图文详解!](https://blog.csdn.net/weixin_43314519/article/details/115152850)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值