Spring Eclipselink/带渐变的弹簧靴。获取QueryDslPredicateExecutor的ClassNotFoundException

Spring Eclipselink/带渐变的弹簧靴。获取QueryDslPredicateExecutor的ClassNotFoundException,spring,gradle,spring-data-jpa,eclipselink,querydsl,Spring,Gradle,Spring Data Jpa,Eclipselink,Querydsl,使用以下gradle脚本生成的一个简单可执行jar给出了ClassNotFoundException group 'com.acme' version '1.0-SNAPSHOT' buildscript { repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.1.R

使用以下
gradle
脚本生成的一个简单可执行jar给出了
ClassNotFoundException

group 'com.acme'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.1.RELEASE")
    }


}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

bootJar {
    baseName = 'acme-project1'
    version =  '0.1.0'
}

jar {
    manifest {
        attributes 'Main-Class': 'com.acme.ApplicationLoader'
        attributes 'Spring-Boot-Classes': 'BOOT-INF/classes/'
        attributes 'Spring-Boot-Lib': 'BOOT-INF/lib/'
    }
}


repositories {
    mavenCentral()
    mavenLocal()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

ext {
    queryDslVersion = '4.1.4'

}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    compile("org.springframework.boot:spring-boot-starter-data-jpa"){
        exclude group: "org.hibernate", module: "hibernate-entitymanager"
    }
    compile("org.springframework.boot:spring-boot-starter-data-rest")

    compile "com.querydsl:querydsl-root:$queryDslVersion"
    compile "com.querydsl:querydsl-jpa:$queryDslVersion"
    compile "com.querydsl:querydsl-apt:$queryDslVersion:jpa"

    compile("com.a:acme-persistence:1.0-SNAPSHOT")

    testCompile("junit:junit")

}
注意:所有
DAO
层代码都打包在一个单独的jar
acme persistence
中,该jar作为
compile()
依赖项添加

注2:我有另一个项目,它也依赖于
acme持久化
,它是使用maven构建的,运行良好。在取消共享和比较包之后,除了
META-INF/MANIFEST.MF
文件之外,其他所有内容都是相似的。在工作罐中有以下几行:

Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
从gradle建造的罐子里找不到的。因此,我将这些代码添加到gradle项目中,并在取消这些代码行的共享后进行验证。然而,我仍然得到相同的错误

错误:

java.lang.NoClassDefFoundError: org/springframework/data/querydsl/QueryDslPredicateExecutor
        at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_25]
        at java.lang.ClassLoader.defineClass(ClassLoader.java:760) ~[na:1.8.0_25]
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_25]
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:455) ~[na:1.8.0_25]
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_25]
        at java.net.URLClassLoader$1.run(URLClassLoader.java:367) ~[na:1.8.0_25]
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.8.0_25]
        at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_25]
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360) ~[na:1.8.0_25]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_25]
        at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93) ~[acme-project1-0.1.0.jar:na]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_25]
        at java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_25]
        at java.lang.ClassLoader.defineClass(ClassLoader.java:760) ~[na:1.8.0_25]
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ~[na:1.8.0_25]
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:455) ~[na:1.8.0_25]
        at java.net.URLClassLoader.access$100(URLClassLoader.java:73) ~[na:1.8.0_25]
        at java.net.URLClassLoader$1.run(URLClassLoader.java:367) ~[na:1.8.0_25]
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.8.0_25]
        at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_25]
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360) ~[na:1.8.0_25]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_25]
        at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:93) ~[acme-project1-0.1.0.jar:na]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_25]
        at org.springframework.util.ClassUtils.forName(ClassUtils.java:274) ~[spring-core-5.0.5.RELEASE.jar!/:5.0.5.RELEASE]
        at org.springframework.data.repository.config.RepositoryBeanNameGenerator.getRepositoryInterfaceFrom(RepositoryBeanNameGenerator.java:90) ~[spring-data-commons-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
        at org.springframework.data.repository.config.RepositoryBeanNameGenerator.generateBeanName(RepositoryBeanNameGenerator.java:54) ~[spring-data-commons-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
        at org.springframework.data.repository.config.RepositoryConfigurationSourceSupport.generateBeanName(RepositoryConfigurationSourceSupport.java:98) ~[spring-data-commons-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
        at org.springframework.data.repository.config.RepositoryConfigurationDelegate.registerRepositoriesIn(RepositoryConfigurationDelegate.java:134) ~[spring-data-commons-2.0.6.RELEASE.jar!/:2.0.6.RELEASE]
        at org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport.registerBeanDefinitions(AbstractRepositoryConfigurationSourceSupport.java:60) ~[spring-boot-autoconfigure-2.0.1.RELEASE.jar!/:2.0.1.RELEASE]

问题是
spring-data-jpa-1.12.2
had类
querydsldpredicateexecutor
,而在
spring-data-jpa-2.6.0
中它被重命名为
querydspredicateexecutor

注意小的
s
vs资本
s