Gradle突然给出与mainClassName相关的错误

时间:2018-06-27 11:48:17

标签: java docker spring-boot gradle

我正在使用Java + Spring Boot + Gradle + Docker。 我的Spring Boot应用程序突然开始发出错误消息“未为属性'mainClassName'指定值。几天前,它仍能正常工作。

我用Google搜索并在下面添加到我的gradle脚本中:

mainClassName = 'com.test.MyMainClass'

现在该项目已成功构建,但使用docker运行时出现错误提示。

Exception in thread "main" java.lang.ClassNotFoundException: 
com.test.MyMainClass
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)

以下是我的docker文件:

FROM oraclejdk8:slim
ADD build/libs/MyTest.jar /MyTest.jar
CMD [ "java", "-jar", "/MyTest.jar" ]

我已经用Google搜索,但是找不到任何解决方案。请帮忙。

更新 我下载了罐子并将其提取。我看到它不包含src / main / java中的任何类。因此,核心问题是我的类(也包括主类)没有被捆绑在jar中。

这很奇怪,因为以前相同的代码可以正常工作。有人有指针吗?

我在本地计算机(windows)上运行了gradle构建,该构建陷入了 bootRepackage 任务。下面是最后一个日志:

executing actions for task ':bootRepackage'.
02:42:47.123 [INFO] [org.gradle.api.Task] Setting mainClass: com.test.MyMainClass
 Building 81% : :bootRepackage

如果我禁用它,然后运行。构建完成,jar包含我的类。

我应该禁用该bootRepackage任务吗?任何帮助将不胜感激。

最初的问题是在jenkins在Linux上构建期间出现的。

0 个答案:

没有答案