我正在使用spring boot,以下是我的gradle文件
buildscript {
ext {
springBootVersion = '2.0.0.BUILD-SNAPSHOT'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
maven { url "https://repo.spring.io/milestone" }
}
configurations {
providedRuntime
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa:1.2.1.RELEASE')
compile('org.springframework.boot:spring-boot-starter-web')
compile("com.h2database:h2")
providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
当我在gradle文件中添加以下依赖
org.springframework.boot:spring-boot-starter-data-jpa:1.2.1.RELEASE
它包括许多其他依赖项,如hibernate n,我现在不需要它(只是想使用spring数据jpa)导致许多其他问题 那我怎么才能只使用spring-data-jpa及其相关的依赖呢?
试图像exclude = {HibernateJpaAutoConfiguration.class}一样禁用但是不顺利
事先提前
答案 0 :(得分:6)
我想最简单的解决方案就是包含spring-data-jpa
,而不是spring-boot-starter-data-jpa
:
compile('org.springframework.data:spring-data-jpa:2.0.0.M2')
或者,如果你真的想要离开首发,那么你可能会尝试做类似的事情:
compile('org.springframework.boot:spring-boot-starter-data-jpa') {
exclude(module: 'hibernate-core')
exclude(module: 'hibernate-entitymanager')
}
但要明白这一点,为了使用spring-data-jpa
,你必须拥有像hibernate
这样的持久性提供者,因为spring-data-jpa
本身只不过是{{1}之上的抽象。反过来又是一个抽象,也是JPA
或hibernate
之类的持久性提供者。
<强>更新强>
如果您想将所有jpa依赖项保留在gradle构建脚本中,但不希望eclipselink
暂时使用它们,那么您必须同时禁用spring-boot
和{{1同样。
DataSourceAutoConfiguration
答案 1 :(得分:1)
您需要遵循此约定来排除您的依赖关系。
compile('org.springframework.boot:spring-boot-starter-data-jpa:1.2.1.RELEASE') {
exclude module: 'hibernate-core'
}
另一种方式是:
configurations {
compile.exclude module: 'hibernate-core'
}
答案 2 :(得分:0)
如果您在 Gradle 中使用 STS 并删除(例如)JPA 依赖项,只需: