SpringBoot Jar не работает при сборке на Linux, но работает при сборке на Windows - PullRequest
0 голосов
/ 28 мая 2020

У меня есть приложение springboot. Когда я тестирую его в режиме разработки на своей машине windows, он работает отлично. Когда я запускаю разные способы сделать исполняемый файл jar (gradle build, ./gradlew bootJar), ​​также отлично работает с помощью команды *java -jar /build/libs/.jar.

Но когда я пытаюсь развернуть его на сервере Linux, выполняя команды (gradle build, ./gradlew bootJar), ​​он компилируется, но при его выполнении выдает следующую ошибку:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'validaIndustriaAlmacenada': Unsatisfied dependency expressed through field 'dimDeudorRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'DimDeudorRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Not a managed type: class cxc.com.mx.cargadorCLIP.models.postgres.emisores.DimDeudorEntity
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643) ~[spring-beans-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) ~[spring-beans-5.2.6.RELEASE.jar!/:5.2.6.RELEASE]

У меня есть весенние аннотации к моим бобам. beacuase, как я уже упоминал, если я запустил Windows jar, он будет работать, как указано. Даже если я запустил jar-файл Windows на сервере Linux, он тоже будет работать. Это jar, созданный на сервере Linux, который выходит из строя.

Это моя среда на машине windows

GRADLE:

------------------------------------------------------------
Gradle 6.3
------------------------------------------------------------

Build time:   2020-03-24 19:52:07 UTC
Revision:     bacd40b727b0130eeac8855ae3f9fd9a0b207c60

Kotlin:       1.3.70
Groovy:       2.5.10
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          1.8.0_231 (Oracle Corporation 25.231-b11)
OS:           Windows 10 10.0 amd64

JAVA

java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

В то время как это Linux серверная среда

ГРЕЙД

------------------------------------------------------------
Gradle 6.3
------------------------------------------------------------

Build time:   2020-03-24 19:52:07 UTC
Revision:     bacd40b727b0130eeac8855ae3f9fd9a0b207c60

Kotlin:       1.3.70
Groovy:       2.5.10
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          1.8.0_252 (Private Build 25.252-b09)
OS:           Linux 4.15.0-99-generic amd64

JAVA

openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~18.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode

gradle.build

plugins {
    id 'org.springframework.boot' version '2.2.7.BUILD-SNAPSHOT'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'cxc.com.mx'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
    maven { url 'https://repo.spring.io/milestone' }
    maven { url 'https://repo.spring.io/snapshot' }
}

dependencies {

    //  Getters y setters automaticos
    compileOnly 'org.projectlombok:lombok:1.18.12'
    annotationProcessor 'org.projectlombok:lombok:1.18.12'
    testCompileOnly 'org.projectlombok:lombok:1.18.12'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.12'
    // Development plugin, autorestart on changes
    runtimeOnly 'org.springframework.boot:spring-boot-devtools'

    //SQL server
    compile "com.microsoft.sqlserver:mssql-jdbc:8.3.0.jre8-preview"

    // SQL
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compile group: 'com.vladmihalcea', name: 'hibernate-types-43', version: '2.7.1'
    runtimeOnly 'org.postgresql:postgresql'
    compile 'org.json:json:20171018'
    compile "com.vladmihalcea:hibernate-types-52:2.9.9"
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    // for test
    compile group: 'org.mockito', name: 'mockito-core', version: '2.13.0'
}

test {
    useJUnitPlatform()
}

Последнее, что следует упомянуть, если я запускаю ./gradlew bootRun на Linux сервер тоже работает. Просто баночка - нет. Также попробовал очистить Gradle перед тем, как сделать банку. Но все равно не получается.

«Извините, если я допустил грамматическую или лексическую ошибку sh английского языка, я все еще учу язык :)»

...