Исключение: java .lang.ClassNotFoundException: org. apache .fineract.ServerApplication для gitlab-ci - PullRequest
1 голос
/ 13 января 2020

Когда я собираю с моего локального компьютера следующую команду 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)

Выше приведено именно то, что выводится на консоль.

1 Ответ

0 голосов
/ 13 января 2020

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/**'
        }
    }
}
}

...