当前位置:   article > 正文

微服务下多模块打包找不到类和符号项目可以启动,打包编译运行就报错的问题_微服务中引入了其他组件但是打包没有打进去

微服务中引入了其他组件但是打包没有打进去

出现多模块打包找不到类和符号的问题?

maven-compiler-plugin和spring-boot-maven-plugin 这俩个插件是我们微服务打包常用到的

1,每个模块配置了spring-boot-maven-plugin 打出来的包都是独立的,即使你clean install 都一样。

2,idea工具有时候打包会出问题,最好的解决办法是通过命令去编译项目打包。

3,启动的项目配置打包。比如我们有三个maven模块:parent,service,server。其中server是一个可以启动的springboot项目,其他模块都是作为jar包引入到server模块中使用的,这时候,我们只能在server模块中引入spring-boot-maven-plugin插件,将api项目打成可执行jar。其余项目都只使用maven-compiler-plugin。这样找不到类的问题就解决了。

server 的pom.xm

  1. <!--构建-->
  2. <profiles>
  3. <profile>
  4. <id>local</id>
  5. <properties>
  6. <profiles.active>local</profiles.active>
  7. </properties>
  8. <activation>
  9. <activeByDefault>true</activeByDefault>
  10. </activation>
  11. </profile>
  12. <profile>
  13. <id>dev</id>
  14. <properties>
  15. <profiles.active>dev</profiles.active>
  16. </properties>
  17. </profile>
  18. <profile>
  19. <id>test</id>
  20. <properties>
  21. <profiles.active>test</profiles.active>
  22. </properties>
  23. </profile>
  24. <profile>
  25. <id>uat</id>
  26. <properties>
  27. <profiles.active>uat</profiles.active>
  28. </properties>
  29. </profile>
  30. <profile>
  31. <id>prod</id>
  32. <properties>
  33. <profiles.active>prod</profiles.active>
  34. </properties>
  35. </profile>
  36. </profiles>
  37. <build>
  38. <resources>
  39. <resource>
  40. <directory>src/main/resources</directory>
  41. <includes>
  42. <include>**/*.xml</include>
  43. <include>**/*.tld</include>
  44. <include>**/*.html</include>
  45. <include>**/*.yml</include>
  46. <include>**/*.xlsx</include>
  47. </includes>
  48. <filtering>true</filtering>
  49. </resource>
  50. <resource>
  51. <directory>src/main/resources</directory>
  52. <includes>
  53. <include>config/*.properties</include>
  54. <include>config/*.yml</include>
  55. </includes>
  56. <filtering>true</filtering>
  57. </resource>
  58. <resource>
  59. <directory>src/main/java</directory>
  60. <includes>
  61. <include>**/*.properties</include>
  62. <include>**/*.yml</include>
  63. <include>**/*.xml</include>
  64. <include>**/*.tld</include>
  65. <include>**/*.xlsx</include>
  66. </includes>
  67. <filtering>false</filtering>
  68. </resource>
  69. </resources>
  70. <plugins>
  71. <plugin>
  72. <groupId>org.springframework.boot</groupId>
  73. <artifactId>spring-boot-maven-plugin</artifactId>
  74. <configuration>
  75. <executable>true</executable>
  76. <finalName>${project.artifactId}</finalName>
  77. </configuration>
  78. </plugin>
  79. </plugins>
  80. </build>

父依赖:

4,最好使用mvn 命令打包编译。以下是问题汇总。

  1. ## 编译项目
  2. mvn -X -DskipTests=true compile
  3. ## 编译项目并且打包 切入到项目最外面
  4. mvn clean install package -Dmaven.test.skip=true

java -jar启动nacos 报
nacos报错: java.nio.charset.MalformedInputException: Input length = 1

原因是nacos的yml编码和项目不一致,导致其他问题。

解决办法:

java -jar -Dfile.encoding=utf-8 xxx.jar

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/313356
推荐阅读
相关标签
  

闽ICP备14008679号