Необходимо исключить модуль spring-orm из Spring boot 2.0 и использовать его более старую версию из файла jar

У меня есть артефакт .jar, который технически является слоем DAO, и был построен с использованием более старого технического стека.

  • Java 1.6
  • Весна 3.1.0.РЕЛИЗ
  • Hibernate 3.5.6-финальная
  • Maven

Я хочу добавить этот .jar в качестве зависимости в мой новый проект Spring boot 2.x и использовать его в качестве уровня данных приложения.

Новый стек технологий приложения:

  • Java 1.8
  • Весенняя загрузка 2.1.3
  • Пружинный каркас 5
  • Gradle

Насколько я понимаю, я добавил старую банку в качестве зависимости в свой build.gradle и исключил модуль spring-orm. Но gradle по-прежнему использует последние версии, а не использует версию в более старой зависимости .jar.

build.gradle

group = 'com.test.app'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
    maven{
        credentials {
            username = "$nexusUsername"
            password = "$nexusPassword"
        }
        url "$nexusUrl"
    }
}

// exluded spring-orm from spring boot 2.x
configurations {
    compile.exclude module: 'spring-orm'
}

dependencies {
    // my older dao dependency
    implementation "com.my.older.core:dao:0.3.8-SNAPSHOT"

    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'org.springframework.security:spring-security-test'
}

Как-то мне нужно, чтобы приложение использовало старую версию orm вместо новой версии в spring boot 2.x, поскольку dao .jar использует старую версию.

Мы будем очень признательны за любые указания по этому поводу. Спасибо.


person wannix    schedule 08.03.2019    source источник
comment
нет, вы не хотите добавлять эту банку. Никогда не следует смешивать банки из разных версий фреймворка. Это приведет к странным и серьезным ошибкам. Посмотрите, работает ли он с обычной версией Spring Orm, исправьте ли старый dao или не используйте повторно, а перестройте. Но никогда не начинайте смешивать jar-файлы из разных версий фреймворка. Одним из решений может быть переход на более старую версию Spring Boot, чтобы проверить, работают ли версии Spring 4.x для вашего dao.   -  person M. Deinum    schedule 08.03.2019
comment
@ M.Deinum Спасибо за понимание. Очевидно, то, что вы говорите, так верно. Но у меня возникла ситуация, когда я могу выбрать либо повторно использовать эту банку, либо заново переписать весь слой dao в этом новом приложении. Наверное, мне стоит попробовать вернуться на Spring Boot 1.x   -  person wannix    schedule 08.03.2019
comment
Возможно, тебе лучше переписать это. Если там есть сущности, вы можете использовать их повторно. Затем просто используйте Spring Data JPA, чтобы быстро реализовать нужные репозитории / daos.   -  person M. Deinum    schedule 11.03.2019
comment
Да ты прав. понижение версии Spring boot тоже не помогло, так что сейчас переписываю. Спасибо за помощь.   -  person wannix    schedule 11.03.2019
comment
В зависимости от того, что вы делаете, вам не следует смешивать версии, поэтому придерживайтесь версии, поставляемой с Spring Boot 1.x, и попробуйте зависимость от dao. Не пытайтесь включить старую spring-orm зависимость и т. Д.   -  person M. Deinum    schedule 11.03.2019
comment
Конечно, понял. Спасибо   -  person wannix    schedule 11.03.2019


Ответы (1)


configurations.all { 
    resolutionStrategy.force 'org.springframework:spring-orm:oldversion'
}

Надеюсь это поможет

person ldo    schedule 08.03.2019
comment
Никогда не смешивайте разные банки из разных версий фреймворка. Это неприятность, которая ждет своего часа. - person M. Deinum; 08.03.2019