【问题标题】:Java: gradle build failed bootRepackage (on create jar)Java:gradle build failed bootRepackage(在创建 jar 时)
【发布时间】:2014-10-31 17:57:27
【问题描述】:

做一个web项目意味着:Java (jdk 1.7.0.51) + Spring framework (+velocity) + Hibernate + Gradle + Apache Tomcat。 突然,出现了一个问题:你无法构建。使用 Gradle 构建。

16:50:30:正在执行外部任务“构建”... :编译Java :processResources 最新 :类 :罐 :bootRepackage 失败 FAILURE:构建失败并出现异常。 * 什么地方出了错: 任务“:bootRepackage”执行失败。 格式错误 * 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。 构建失败 总时间:14.935 秒 格式错误

可能是什么问题?

完整日志:

:bootRepackage 失败
FAILURE:构建失败并出现异常。
* 什么地方出了错: 任务“:bootRepackage”执行失败。 格式错误
* 试试:
使用 --info 或 --debug 选项运行以获得更多日志输出。
* 例外情况是: org.gradle.api.tasks.TaskExecutionException:任务“:bootRepackage”执行失败。 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter. 爪哇:69) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46 ) 在 org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskEx ecuter.java:35) 在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) 在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 在 org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExec uter.java:42) 在 org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.j 艾娃:52) 在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) 在 org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.j 艾娃:43) 在 org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:286) 在 org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecut or.java:79) 在 org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecut or.java:63) 在 org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java: 51) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$1.run(DefaultTaskPlanExecutor.java:33) 在 org.gradle.internal.Factories$1.create(Factories.java:22) 在 org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198) 在 org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:266) 在 org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStor e.java:135) 在 org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(默认 tTaskArtifactStateCacheAccess.java:93) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:31) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86) 在 org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29) 在 org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) 在 org.gradle.execution.DefaultBuildExecuter.access $200(DefaultBuildExecuter.java:23) 在 org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67) 在 org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) 在 org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) 在 org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54) 在 org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166) 在 org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113) 在 org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter .java:64) 在 org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) 在 org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) 在 org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50) 在 org.gradle.api.internal.Actions$RunnableActionAdapter.execute(Actions.java:171) 在 org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:20 1) 在 org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:17 4) 在 org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170) 在 org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139) 在 org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) 在 org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) 在 org.gradle.launcher.Main.doAction(Main.java:46) 在 org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) 在 org.gradle.launcher.Main.main(Main.java:37) 在 org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50) 在 org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32) 在 org.gradle.launcher.GradleMain.main(GradleMain.java:23) 在 org.gradle.wrapper.BootstrapMainStarter.start(BootstrapMainStarter.java:30) 在 org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:127) 在 org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:58) 引起:java.lang.IllegalArgumentException:MALFORMED 在 org.springframework.boot.loader.tools.MainClassFinder.getClassEntries(MainClassFinder.java:237) 在 org.springframework.boot.loader.tools.MainClassFinder.doWithMainClasses(MainClassFinder.java:200) 在 org.springframework.boot.loader.tools.MainClassFinder.findSingleMainClass(MainClassFinder.java:187) 在 org.springframework.boot.loader.tools.Repackager.findMainMethod(Repackager.java:228) 在 org.springframework.boot.gradle.repackage.RepackageTask$LoggingRepackager.findMainMethod(RepackageTask.java:2 19) 在 org.springframework.boot.loader.tools.Repackager.buildManifest(Repackager.java:206) 在 org.springframework.boot.loader.tools.Repackager.repackage(Repackager.java:139) 在 org.springframework.boot.loader.tools.Repackager.repackage(Repackager.java:122) 在 org.springframework.boot.gradle.repackage.RepackageTask$RepackageAction.repackage(RepackageTask.java:173) 在 org.springframework.boot.gradle.repackage.RepackageTask$RepackageAction.execute(RepackageTask.java:138) 在 org.springframework.boot.gradle.repackage.RepackageTask$RepackageAction.execute(RepackageTask.java:1) 在 org.gradle.api.internal.Actions$FilteredAction.execute(Actions.java:203) 在 org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:110) 在 org.gradle.api.internal.DefaultDomainObjectCollection.withType(DefaultDomainObjectCollection.java:120) 在 org.springframework.boot.gradle.repackage.RepackageTask.repackage(RepackageTask.java:89) 在 org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63) 在 org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(Anno tationProcessingTaskFactory.java:219) 在 org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(Annota tionProcessingTaskFactory.java:212) 在 org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(Annota tionProcessingTaskFactory.java:201) 在 org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:530) 在 org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:513) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.j 艾娃:80) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter. 爪哇:61) ... 52 更多
构建失败
总时间:13.0秒

【问题讨论】:

    标签: java spring jar build gradle


    【解决方案1】:

    如果您不使用引导重新打包,您可以通过将此行添加到您的 build.gradle 文件中来禁用 bootRepackage 任务:

    bootRepackage.enabled = false
    

    否则需要指定主类:

    bootRepackage {
        mainClass = 'youPackage.Application'
    }
    

    您可以在this link找到更多说明

    如果您仍有问题,请分享您的 build.gradle。

    【讨论】:

    • 这帮助我解决了在 BOOT-INF 下不打包源类的情况下构建 JAR:BOOT-INF 是您想要的 runnable JAR,但不是您想要的源/依赖 JAR.
    【解决方案2】:

    Spring Boot release 2.0 M1 开始,bootRepackage 任务已替换为 bootJarbootWar 任务。

    【讨论】:

      猜你喜欢
      • 2018-07-24
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多