我无法使用SAM构建我的Spring Boot多模块项目。

huangapple go评论94阅读模式
英文:

I cant build my spring-boot multi module project with SAM

问题

在运行SAM构建时,我在依赖于项目内另一个本地模块的模块上遇到了依赖错误。从mvn或IntelliJ中没有问题,但当我执行SAM构建时,我遇到了找不到符号和类的错误。

  1. 构建失败
  2. 错误:JavaMavenWorkflow:MavenBuild - Maven失败:[INFO]扫描项目...
  3. [INFO]-------------------------------------------------- ----------------------
  4. [INFO]反应堆构建顺序:
  5. [INFO]
  6. [INFO]后端[pom]
  7. [INFO] Api [jar]
  8. [INFO]注册[jar]
  9. [INFO]
  10. [INFO]------------------------<com.backend:backend>-------------------------
  11. [INFO]正在构建后端0.0.1-SNAPSHOT[1/3]
  12. [INFO]--------------------------------[pom]---------------------------------
  13. [INFO]
  14. [INFO] ---maven-clean-plugin:3.2.0:cleandefault-clean@backend---
  15. [INFO]
  16. [INFO] ---spring-boot-maven-plugin:3.0.6:repackage(重新打包)@backend---
  17. [INFO]
  18. [INFO] ---maven-install-plugin:3.0.1:installdefault-install@backend---
  19. [INFO]正在安装/tmp/tmptflbmqgd/pom.xml到/home/laingard/.m2/repository/com/backend/backend/0.0.1-SNAPSHOT/backend-0.0.1-SNAPSHOT.pom
  20. [INFO]
  21. [INFO]--------------------------<com.backend:Api>---------------------------
  22. [INFO]构建Api 0.0.1-SNAPSHOT[2/3]
  23. [INFO]--------------------------------[jar]---------------------------------
  24. [INFO]
  25. [INFO] ---maven-clean-plugin:3.2.0:cleandefault-clean@Api---
  26. [INFO]删除/tmp/tmptflbmqgd/Api/target
  27. [INFO]
  28. [INFO] ---maven-resources-plugin:3.3.1:resources(默认资源)@Api---
  29. [INFO]从src/main/resources复制0个资源到target/classes
  30. [INFO]跳过不存在的resourceDirectory /tmp/tmptflbmqgd/Api/config
  31. [INFO]
  32. [INFO] ---maven-compiler-plugin:3.10.1:compile(默认编译)@Api---
  33. [INFO]检测到更改-重新编译模块!
  34. [INFO]正在编译93个源文件到/tmp/tmptflbmqgd/Api/target/classes
  35. [INFO]
  36. [INFO] ---maven-resources-plugin:3.3.1:testResources(默认测试资源)@Api---
  37. [INFO]跳过不存在的resourceDirectory /tmp/tmptflbmqgd/Api/src/test/resources
  38. [INFO]
  39. [INFO] ---maven-compiler-plugin:3.10.1:testCompile(默认测试编译)@Api---
  40. [INFO]检测到更改-重新编译模块!
  41. [INFO]
  42. [INFO] ---maven-surefire-plugin:2.22.2:test(默认测试)@Api---
  43. [INFO]跳过测试。
  44. [INFO]
  45. [INFO] ---maven-jar-plugin:3.3.0:jar(默认jar@Api---
  46. [INFO]正在构建jar:/tmp/tmptflbmqgd/Api/target/Api-0.0.1-SNAPSHOT.jar
  47. [INFO]
  48. [INFO] ---spring-boot-maven-plugin:3.0.6:repackage(重新打包)@Api---
  49. [INFO]用重新打包的存档替换主要存档
  50. [INFO]
  51. [INFO] ---maven-install-plugin:3.0.1:installdefault-install@Api---
  52. [INFO]正在安装/tmp/tmptflbmqgd/Api/pom.xml到/home/laingard/.m2/repository/com/backend/Api/0.0.1-SNAPSHOT/Api-0.0.1-SNAPSHOT.pom
  53. [INFO]正在将/tmp/tmptflbmqgd/Api/target/Api-0.0.1-SNAPSHOT.jar安装到/home/laingard/.m2/repository/com/backend/Api/0.0.1-SNAPSHOT/Api-0.0.1-SNAPSHOT.jar
  54. [INFO]
  55. [INFO]------------------------<com.backend:Register>------------------------
  56. [INFO]构建注册0.0.1-SNAPSHOT[3/3]
  57. [INFO]--------------------------------[jar]---------------------------------
  58. [INFO]
  59. [INFO] ---maven-clean-plugin:3.2.0:cleandefault-clean@Register---
  60. [INFO]删除/tmp/tmptflbmqgd/Register/target
  61. [INFO]
  62. [INFO] ---maven-resources-plugin:3.3.1:resources(默认资源)@Register---
  63. [INFO]从src/main/resources复制0个资源到target/classes
  64. [INFO]跳过不存在的resourceDirectory /tmp/tmptflbmqgd/Register/config
  65. [INFO]
  66. [INFO] ---maven-compiler-plugin:3.10.1:compile(默认编译)@Register---
  67. [INFO]检测到更改-重新编译模块!
  68. [INFO]正在编译9个源文件到/tmp/tmptflbmqgd/Register/target/classes
  69. [INFO]-------------------------------------------------------------
  70. [ERROR] COMPILATION ERROR
  71. [INFO]-------------------------------------------------------------
  72. [ERROR]/tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[3,34]包com.careerwatch.Api.entity不存在
  73. [ERROR]/tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[4,37]包com.careerwatch.Api.exception不存在
  74. [ERROR]/tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[5,38]包com.careerwatch.Api.repository不存在
  75. [ERROR]/tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[18,19]找不到符号
  76. 符号:类UserRepository
  77. 位置:类com.careerwatch.register.service.RegisterServiceImpl
  78. [ERROR]/tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[3,34]包com.careerwatch.Api.entity不存在
  79. [ERROR]/tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[4,38]包com.careerwatch.Api.repository不存在
  80. [ERROR]/tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/mapper/RegisterDtoMapper.java:[3,34]包com.careerwatch.Api.entity不存在
  81. [ERROR]/tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[15,1]找不到符号
  82. 符号:类User
  83. <details>
  84. <summary>英文:</summary>
  85. When running SAM build, I get a dependency error on the module that depends on another local module within my project. From mvn or IntelliJ I have no problems, but when i execute SAM build, i got an error of notFound symbols and classses.
  1. Build Failed
  2. Error: JavaMavenWorkflow:MavenBuild - Maven Failed: [INFO] Scanning for projects...
  3. [INFO] ------------------------------------------------------------------------
  4. [INFO] Reactor Build Order:
  5. [INFO]
  6. [INFO] backend [pom]
  7. [INFO] Api [jar]
  8. [INFO] Register [jar]
  9. [INFO]
  10. [INFO] ------------------------&lt; com.backend:backend &gt;-------------------------
  11. [INFO] Building backend 0.0.1-SNAPSHOT [1/3]
  12. [INFO] --------------------------------[ pom ]---------------------------------
  13. [INFO]
  14. [INFO] --- maven-clean-plugin:3.2.0:clean (default-clean) @ backend ---
  15. [INFO]
  16. [INFO] --- spring-boot-maven-plugin:3.0.6:repackage (repackage) @ backend ---
  17. [INFO]
  18. [INFO] --- maven-install-plugin:3.0.1:install (default-install) @ backend ---
  19. [INFO] Installing /tmp/tmptflbmqgd/pom.xml to /home/laingard/.m2/repository/com/backend/backend/0.0.1-SNAPSHOT/backend-0.0.1-SNAPSHOT.pom
  20. [INFO]
  21. [INFO] --------------------------&lt; com.backend:Api &gt;---------------------------
  22. [INFO] Building Api 0.0.1-SNAPSHOT [2/3]
  23. [INFO] --------------------------------[ jar ]---------------------------------
  24. [INFO]
  25. [INFO] --- maven-clean-plugin:3.2.0:clean (default-clean) @ Api ---
  26. [INFO] Deleting /tmp/tmptflbmqgd/Api/target
  27. [INFO]
  28. [INFO] --- maven-resources-plugin:3.3.1:resources (default-resources) @ Api ---
  29. [INFO] Copying 0 resource from src/main/resources to target/classes
  30. [INFO] skip non existing resourceDirectory /tmp/tmptflbmqgd/Api/config
  31. [INFO]
  32. [INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ Api ---
  33. [INFO] Changes detected - recompiling the module!
  34. [INFO] Compiling 93 source files to /tmp/tmptflbmqgd/Api/target/classes
  35. [INFO]
  36. [INFO] --- maven-resources-plugin:3.3.1:testResources (default-testResources) @ Api ---
  37. [INFO] skip non existing resourceDirectory /tmp/tmptflbmqgd/Api/src/test/resources
  38. [INFO]
  39. [INFO] --- maven-compiler-plugin:3.10.1:testCompile (default-testCompile) @ Api ---
  40. [INFO] Changes detected - recompiling the module!
  41. [INFO]
  42. [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ Api ---
  43. [INFO] Tests are skipped.
  44. [INFO]
  45. [INFO] --- maven-jar-plugin:3.3.0:jar (default-jar) @ Api ---
  46. [INFO] Building jar: /tmp/tmptflbmqgd/Api/target/Api-0.0.1-SNAPSHOT.jar
  47. [INFO]
  48. [INFO] --- spring-boot-maven-plugin:3.0.6:repackage (repackage) @ Api ---
  49. [INFO] Replacing main artifact with repackaged archive
  50. [INFO]
  51. [INFO] --- maven-install-plugin:3.0.1:install (default-install) @ Api ---
  52. [INFO] Installing /tmp/tmptflbmqgd/Api/pom.xml to /home/laingard/.m2/repository/com/backend/Api/0.0.1-SNAPSHOT/Api-0.0.1-SNAPSHOT.pom
  53. [INFO] Installing /tmp/tmptflbmqgd/Api/target/Api-0.0.1-SNAPSHOT.jar to /home/laingard/.m2/repository/com/backend/Api/0.0.1-SNAPSHOT/Api-0.0.1-SNAPSHOT.jar
  54. [INFO]
  55. [INFO] ------------------------&lt; com.backend:Register &gt;------------------------
  56. [INFO] Building Register 0.0.1-SNAPSHOT [3/3]
  57. [INFO] --------------------------------[ jar ]---------------------------------
  58. [INFO]
  59. [INFO] --- maven-clean-plugin:3.2.0:clean (default-clean) @ Register ---
  60. [INFO] Deleting /tmp/tmptflbmqgd/Register/target
  61. [INFO]
  62. [INFO] --- maven-resources-plugin:3.3.1:resources (default-resources) @ Register ---
  63. [INFO] Copying 0 resource from src/main/resources to target/classes
  64. [INFO] skip non existing resourceDirectory /tmp/tmptflbmqgd/Register/config
  65. [INFO]
  66. [INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ Register ---
  67. [INFO] Changes detected - recompiling the module!
  68. [INFO] Compiling 9 source files to /tmp/tmptflbmqgd/Register/target/classes
  69. [INFO] -------------------------------------------------------------
  70. [ERROR] COMPILATION ERROR :
  71. [INFO] -------------------------------------------------------------
  72. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[3,34] package com.careerwatch.Api.entity does not exist
  73. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[4,37] package com.careerwatch.Api.exception does not exist
  74. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[5,38] package com.careerwatch.Api.repository does not exist
  75. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[18,19] cannot find symbol
  76. symbol: class UserRepository
  77. location: class com.careerwatch.register.service.RegisterServiceImpl
  78. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[3,34] package com.careerwatch.Api.entity does not exist
  79. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[4,38] package com.careerwatch.Api.repository does not exist
  80. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/mapper/RegisterDtoMapper.java:[3,34] package com.careerwatch.Api.entity does not exist
  81. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[15,1] cannot find symbol
  82. symbol: class UserRepository
  83. location: class com.careerwatch.register.service.RegisterServiceImpl
  84. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/mapper/RegisterDtoMapper.java:[13,12] cannot find symbol
  85. symbol: class User
  86. location: class com.careerwatch.register.mapper.RegisterDtoMapper
  87. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[26,5] cannot find symbol
  88. symbol: class UserRepository
  89. location: class com.careerwatch.register.jwt.JwtService
  90. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[34,33] cannot find symbol
  91. symbol: class User
  92. location: class com.careerwatch.register.jwt.JwtService
  93. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[66,47] cannot find symbol
  94. symbol: class User
  95. location: class com.careerwatch.register.jwt.JwtService
  96. [INFO] 12 errors
  97. [INFO] -------------------------------------------------------------
  98. [INFO] ------------------------------------------------------------------------
  99. [INFO] Reactor Summary for backend 0.0.1-SNAPSHOT:
  100. [INFO]
  101. [INFO] backend ............................................ SUCCESS [ 0.565 s]
  102. [INFO] Api ................................................ SUCCESS [ 3.314 s]
  103. [INFO] Register ........................................... FAILURE [ 0.534 s]
  104. [INFO] ------------------------------------------------------------------------
  105. [INFO] BUILD FAILURE
  106. [INFO] ------------------------------------------------------------------------
  107. [INFO] Total time: 4.575 s
  108. [INFO] Finished at: 2023-06-01T12:51:53-03:00
  109. [INFO] ------------------------------------------------------------------------
  110. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project Register: Compilation failure: Compilation failure:
  111. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[3,34] package com.careerwatch.Api.entity does not exist
  112. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[4,37] package com.careerwatch.Api.exception does not exist
  113. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[5,38] package com.careerwatch.Api.repository does not exist
  114. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[18,19] cannot find symbol
  115. [ERROR] symbol: class UserRepository
  116. [ERROR] location: class com.careerwatch.register.service.RegisterServiceImpl
  117. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[3,34] package com.careerwatch.Api.entity does not exist
  118. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[4,38] package com.careerwatch.Api.repository does not exist
  119. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/mapper/RegisterDtoMapper.java:[3,34] package com.careerwatch.Api.entity does not exist
  120. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/service/RegisterServiceImpl.java:[15,1] cannot find symbol
  121. [ERROR] symbol: class UserRepository
  122. [ERROR] location: class com.careerwatch.register.service.RegisterServiceImpl
  123. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/mapper/RegisterDtoMapper.java:[13,12] cannot find symbol
  124. [ERROR] symbol: class User
  125. [ERROR] location: class com.careerwatch.register.mapper.RegisterDtoMapper
  126. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[26,5] cannot find symbol
  127. [ERROR] symbol: class UserRepository
  128. [ERROR] location: class com.careerwatch.register.jwt.JwtService
  129. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[34,33] cannot find symbol
  130. [ERROR] symbol: class User
  131. [ERROR] location: class com.careerwatch.register.jwt.JwtService
  132. [ERROR] /tmp/tmptflbmqgd/Register/src/main/java/com/careerwatch/register/jwt/JwtService.java:[66,47] cannot find symbol
  133. [ERROR] symbol: class User
  134. [ERROR] location: class com.careerwatch.register.jwt.JwtService
  135. [ERROR] -&gt; [Help 1]
  136. [ERROR]
  137. [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
  138. [ERROR] Re-run Maven using the -X switch to enable full debug logging.
  139. [ERROR]
  140. [ERROR] For more information about the errors and possible solutions, please read the following articles:
  141. [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
  142. [ERROR]
  143. [ERROR] After correcting the problems, you can resume the build with the command
  144. [ERROR] mvn &lt;args&gt; -rf :Register
  1. This is my template.yml

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Globals:
Function:
Timeout: 30

Resources:
CareerWatchFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: com.careerwatch.Api.StreamLambdaHandler::handleRequest
Runtime: java17
AutoPublishAlias: production
SnapStart:
ApplyOn: PublishedVersions
Architectures:
- x86_64
MemorySize: 1024
Environment:
Variables:
POWERTOOLS_SERVICE_NAME: CareerWatchApi
DB_HOST: !Ref DBhost
DB_PORT: !Ref DBport
DB_NAME: !Ref DBname
DB_USERNAME: !Ref DBusername
DB_PASSWORD: !Ref DBpassword
Events:
HelloWorld:
Type: Api
Properties:
Path: /{proxy+}
Method: ANY
RegisterFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: com.careerwatch.register.RegisterLambdaHandler::handleRequest
Runtime: java17
AutoPublishAlias: production
SnapStart:
ApplyOn: PublishedVersions
Architectures:
- x86_64
MemorySize: 1024
Environment:
Variables:
POWERTOOLS_SERVICE_NAME: CareerWatchApi
DB_HOST: !Ref DBhost
DB_PORT: !Ref DBport
DB_NAME: !Ref DBname
DB_USERNAME: !Ref DBusername
DB_PASSWORD: !Ref DBpassword
SECRET_KEY: !Ref SecretKey
Events:
RegisterEndpoint:
Type: Api
Properties:
Path: /api/v1/register
Method: POST
Parameters:
DBhost:
Type: String
Default: ''
Description: Enter the DB host name or IP address
DBport:
Type: String
Default: ''
Description: Enter the DB port
DBname:
Type: String
Default: ''
Description: Enter the DB name
DBusername:
Type: String
Default: ''
Description: Enter the DB username
DBpassword:
Type: String
Default: ''
Description: Enter the DB password
SecretKey:
Type: String
Default: ''
Description: Enter the secret jwt key password

  1. I did `mvn install` and I checked the whole project structure, however with maven it works, but with sam build it doesn&#39;t.
  2. [1]: https://i.stack.imgur.com/fy3Cw.jpg
  3. </details>
  4. # 答案1
  5. **得分**: 0
  6. 你在评论中提到:
  7. "我正在构建一个无服务器应用程序,部署Lambda函数在API Gateway中。"
  8. 如果你有兴趣使用Java构建无服务器应用程序,请查看PAM示例。此示例构建了一个完整的无服务器示例,使用API GatewayLambda函数、Java SDK、一个使用Cognito登录用户的客户端应用程序等等。
  9. 以下是概述图示:
  10. [![在此输入图片描述][1]][1]
  11. 此外,该示例使用AWS CDK来创建各种资源。
  12. 这不使用SAM
  13. 请参阅:
  14. [创建一个照片资产管理应用程序,让用户使用标签管理照片][2]
  15. [1]: https://i.stack.imgur.com/iBcyY.png
  16. [2]: https://docs.aws.amazon.com/code-library/latest/ug/cross_PAM_java_2_topic.html
  17. <details>
  18. <summary>英文:</summary>
  19. You stated in your comment:
  20. &quot;I am building a serverless application, deploying lambdas functions in api gateway.&quot;
  21. If you are intereted in builidng a serverless app with Java, look at the PAM example. This example builds a complete serverless example that uses API Gateway, Lambda functions, Java SDK, a client app that uses Cognito to log in users, etc.
  22. Here is the overview illustration:
  23. [![enter image description here][1]][1]
  24. As well, this example uses the AWS CDK to standup various resources.
  25. This does not use SAM.
  26. See:
  27. [Create a photo asset management application that lets users manage photos using labels][2]
  28. [1]: https://i.stack.imgur.com/iBcyY.png
  29. [2]: https://docs.aws.amazon.com/code-library/latest/ug/cross_PAM_java_2_topic.html
  30. </details>

huangapple
  • 本文由 发表于 2023年6月2日 00:08:09
  • 转载请务必保留本文链接:https://go.coder-hub.com/76383806.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定