Spring Boot pom.xml 属性配置 <properties> 没有统一管理 lombok 依赖版本,这里可以正常使用 ${lombok.version}
问题!-- 属性配置统一管理依赖版本 -- properties project.build.sourceEncodingUTF-8/project.build.sourceEncoding !-- MapStruct 版本 -- org.mapstruct.version1.6.3/org.mapstruct.version /properties version${lombok.version}/version 属性配置 properties 没有统一管理 lombok 依赖版本这里直接使用 ${lombok.version}可以吗在当前的pom.xml中version${lombok.version}/version是可行的因为它继承自 Spring Boot 父 POM。为什么可行spring-boot-starter-parent作为父 POM已经定义了lombok.version属性例如1.18.36。在子项目中可以直接使用${lombok.version}引用该版本无需在properties中重复声明。验证方式你可以运行以下命令查看实际解析的版本bashmvn help:evaluate -Dexpressionlombok.version -q -DforceStdout如果输出一个具体的版本号如1.18.36说明该属性已被父 POM 定义。建议可选虽然当前配置可正常工作但如果你希望显式控制 Lombok 版本例如固定版本防止父 POM 升级带来的影响可以在properties中添加xmlproperties lombok.version1.18.36/lombok.version /properties这样既保留了父 POM 的管理又明确了本地使用的版本。结论当前配置是正确的不会因为未定义${lombok.version}而导致编译失败。PS D:\MyCode\wylims-jm\lims-server mvn help:evaluate -Dexpressionlombok.version -q -DforceStdout null object or invalid expression[ERROR] Unknown lifecycle phase .version. You must specify a valid lifecycle phase or a goal in the format plugin-prefix:goal or plugin-group-id:plugin-artifact-id[:plugin-version]:goal. Available lifecycle phases are: pre-clean, clean, post-clean, validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-site, site, post-site, site-deploy. - [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException PS D:\MyCode\wylims-jm\lims-server你执行的命令报错是因为 PowerShell 对命令行参数的解析问题。在 PowerShell 中-Dexpressionlombok.version中的点号.被解释为命令分隔符或特殊字符导致 Maven 收到了错误的参数误以为lombok.version是一个生命周期阶段。✅ 正确的命令两种方式均可方式一使用引号包裹参数powershellmvn help:evaluate -Dexpressionlombok.version -q -DforceStdout方式二使用 Maven Help 插件的完整路径避免解析问题powershellmvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpressionlombok.version -q -DforceStdout执行上述任一命令后如果父 POM 定义了lombok.version会输出版本号如1.18.36如果未定义则输出null object or invalid expression。 关于${lombok.version}的可行性在 Spring Boot 父 POMspring-boot-starter-parent中确实定义了lombok.version属性当前版本为1.18.36因此你的配置xmlversion${lombok.version}/version是完全可行的Maven 会在构建时自动解析该属性。 建议显式定义属性可选如果你希望明确控制版本避免父 POM 升级带来的影响可以在properties中显式声明xmlproperties lombok.version1.18.36/lombok.version /properties这样既保留了父 POM 的管理又固定了当前项目使用的版本。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2469750.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!