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

有人说想要例子:

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

https://download.youkuaiyun.com/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函数的入口

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值