- 打包的时候报错,提示 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。然后清理和重新构建项目即可。
- 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,然后重新构建即可。