Gradle 项目打包构建中的两个小问题
1. 打包的时候报错,提示 jar 重复,具体详情:
* What went wrong: Execution failed for task ':web-admin:bootJar'. > Entry BOOT-INF/lib/jaxb-core-4.0.3.jar is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.6.3/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights.
在打包Spring Boot应用时,BOOT-INF/lib/jaxb-core-4.0.3.jar 文件出现了重复项,而构建脚本中没有设置处理重复文件的策略。Gradle不允许默认情况下存在重复文件,因此构建失败。要解决这个问题,只修改构建配置:
bootJar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }
这段代码告诉 Gradle 在发现重复文件时排除它们。根据你的需求,你也可以选择其他策略如 DuplicatesStrategy.INCLUDE 或者 DuplicatesStrategy.WARN。然后清理和重新构建项目即可。
2. Jenkins 打包 Gradle 项目提示权限不足,具体详情如下:
java.io.IOException: Cannot run program "/var/lib/jenkins/workspace/ams/AmsAdminApi/gradlew" (in directory "/var/lib/jenkins/workspace/ams/AmsAdminApi"): error=13, Permission denied at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) at hudson.Proc$LocalProc.<init>(Proc.java:252) at hudson.Proc$LocalProc.<init>(Proc.java:221) at hudson.Launcher$LocalLauncher.launch(Launcher.java:994) at hudson.Launcher$ProcStarter.start(Launcher.java:506) at hudson.Launcher$ProcStarter.join(Launcher.java:517) at PluginClassLoader for gradle//hudson.plugins.gradle.Gradle.perform(Gradle.java:321) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.Build$BuildExecution.build(Build.java:199) at hudson.model.Build$BuildExecution.doRun(Build.java:164) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:526) at hudson.model.Run.execute(Run.java:1894) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:446)
从错误信息来看,问题出在尝试执行 /var/lib/jenkins/workspace/ams/AmsAdminApi/gradlew 这个脚本时遇到了权限问题(error=13, Permission denied)。这通常是因为当前用户没有对该文件的执行权限。执行如下命令即可:
git update-index --chmod=+x gradlew
然后正常执行:git commit & git push,然后重新构建即可。
全文完,如果本文对您有所帮助,请花 1 秒钟帮忙点击一下广告,谢谢。
作 者: BridgeLi,https://www.bridgeli.cn
原文链接:http://www.bridgeli.cn/archives/784
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
作 者: BridgeLi,https://www.bridgeli.cn
原文链接:http://www.bridgeli.cn/archives/784
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
近期评论