首页 > Java > Gradle 项目打包构建中的两个小问题

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
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
分类: Java 标签: ,
  1. 本文目前尚无任何评论.

请输入正确的验证码