java - 异常:java.lang.ClassNotFoundException:gitlab-ci 的 org.apache.fineract.ServerApplication
问题描述
当我使用以下命令从本地计算机构建gradlew -p fineract-provider/ build
并将war文件复制到我的远程服务器时,它使用该命令正常运行java -Djava.awt.headless=false -jar fineract-provider.war
但是当我通过我的gitlab-CI运行相同的构建命令时,将其自动复制到服务器然后运行同样的java命令,我得到一个类未找到异常如下:
Picked up JAVA_TOOL_OPTIONS: -Dhttps.protocols=TLSv1.2
Exception in thread "main" java.lang.ClassNotFoundException: org.apache.fineract.ServerApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93)
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.WarLauncher.main(WarLauncher.java:58)
以上正是它向控制台吐出的内容。
解决方案
Fineract 有一个gradle.build
不包括主要类的设置。所以我只是改变了这个
if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
sourceSets {
main {
java {
exclude '**/Server*'
exclude '**/MariaDB4j*'
exclude '**/EmbeddedTomcatWithSSLConfiguration.java'
}
}
test {
java {
exclude '**/core/boot/tests/**'
}
}
}
}
对此
if (!(project.hasProperty('env') && project.getProperty('env') == 'dev')) {
sourceSets {
main {
java {
// exclude '**/Server*'
exclude '**/MariaDB4j*'
exclude '**/ServerWithMariaDB4jApplication.java'
// exclude '**/EmbeddedTomcatWithSSLConfiguration.java'
}
}
test {
java {
exclude '**/core/boot/tests/**'
}
}
}
}
推荐阅读
- dialog - 如何使用 Ace 对话框显示消息/错误?
- java - 在 Java 代码中对 Scala 对象进行数学运算
- react-native - 如何让每个组件的 props 都定义在 react native 的一个中心位置?
- r - Highcharter 悬停显示不正确的点
- angular - 角度:按钮对点击没有影响
- pentaho - 如何在 Pentaho 中将字符串转换为日期类型?
- php - 错误:标题不能包含多个标题,换行
- bash - Git bash 无法运行任何 ng 命令(Angular CLI)
- java - 带有 Spring Boot 的 IBM MQ JMS 应用程序。出现异常:IBM MQ 调用失败“2538”(“MQRC_HOST_NOT_AVAILABLE”)
- c# - 无法将成分对象传递给新的配方对象