我使用的是Spring-boot 1.1.1.RELEASE,我有一个在启动时创建的H2数据库.当我从IntelliJ运行我的主类时,一切运行良好.当我使用" gradle build test " 运行时,我的集成测试会出错:
Caused by: java.lang.IllegalStateException: Cannot find changelog location: class path resource [db/changelog/db.changelog-master.yaml] (please add changelog or check your Liquibase configuration) at org.springframework.util.Assert.state(Assert.java:385) at org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration$LiquibaseConfiguration.checkChangelogExists(LiquibaseAutoConfiguration.java:80) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:349) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:300) at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)
这是我的gradle文件:
apply plugin: 'java' apply plugin: 'groovy' apply plugin: 'idea' apply plugin: 'spring-boot' apply plugin: 'jacoco' apply plugin: 'maven' project.ext { springBootVersion = '1.1.1.RELEASE' } buildscript { repositories { maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } maven { url "http://repo.spring.io/libs-milestone" } maven { url "http://repo.spring.io/libs-snapshot" } mavenLocal() mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:1.0.1.RELEASE") } } jar { baseName = 'my-app' version = '0.1.0' } repositories { mavenCentral() maven { url "http://repo.spring.io/libs-milestone" } maven { url "https://repository.jboss.org/nexus/content/repositories/releases" } maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } maven { url "http://repo.spring.io/snapshot" } maven { url 'http://repo.spring.io/milestone' } } dependencies { compile("org.springframework.boot:spring-boot-starter-web:$springBootVersion") compile("org.springframework.boot:spring-boot:1.0.1.RELEASE") compile("org.springframework.boot:spring-boot-starter-thymeleaf") compile("org.springframework.boot:spring-boot-starter-security") compile("org.springframework.boot:spring-boot-starter-data-jpa:$springBootVersion") compile("org.springframework.security:spring-security-web:4.0.0.M1") compile("org.springframework.security:spring-security-config:4.0.0.M1") compile('org.thymeleaf.extras:thymeleaf-extras-springsecurity3:2.1.1.RELEASE') compile("org.springframework:spring-orm:4.0.0.RC1") compile("org.hibernate:hibernate-core:4.3.4.Final") compile("org.hibernate:hibernate-entitymanager:4.3.4.Final") compile("org.hibernate:hibernate-validator") compile("com.h2database:h2:1.3.172") compile("joda-time:joda-time:2.3") compile("org.codehaus.groovy.modules.http-builder:http-builder:0.7.1") compile('org.codehaus.groovy:groovy-all:2.2.1') compile('org.jadira.usertype:usertype.jodatime:2.0.1') compile("org.liquibase:liquibase-core") testCompile('org.spockframework:spock-core:1.0-groovy-2.0-SNAPSHOT') { exclude group: 'org.codehaus.groovy', module: 'groovy-all' } testCompile('org.spockframework:spock-spring:1.0-groovy-2.0-SNAPSHOT') { exclude group: 'org.spockframework', module: 'spock-core' exclude group: 'org.spockframework', module: 'spring-beans' exclude group: 'org.spockframework', module: 'spring-test' exclude group: 'org.codehaus.groovy', module: 'groovy-all' } testCompile("org.springframework.boot:spring-boot-starter-test:$springBootVersion") testCompile('org.codehaus.groovy.modules.http-builder:http-builder:0.7+') testCompile("junit:junit") } jacocoTestReport { group = "Reporting" description = "Generate Jacoco coverage reports after running tests." } task wrapper(type: Wrapper) { gradleVersion = '1.11' }
我在src/main/resources和src/test/resources中都有一个包含以下条目的application.properties文件:
liquibase.changeLog=classpath:db/changelog/db.changelog-master.xml
然后在src/main/resources/db/changelog和src/test/resources/db/changelog中我有一个db.changelog-master.xml 当我构建项目时,我看到build/resources/test和build/resources/main有application.properties,db/changelog/db.changelog-master.xml.
这似乎是一个类路径问题,因为它在IntelliJ而不是命令行中工作.任何人都可以建议我在这里做错了吗?