San*_*sso 5 spring h2 liquibase spring-boot
I\xc2\xb4m 尝试运行 springboot api 并使用 liquibase 配置数据库。
\n\n这里的问题是我遵循了几个教程中描述的所有步骤,但更改日志从未执行。
\n\n代码:
\n\n摇篮配置:
\n\ngroup = \'com.strixtools\'\nversion = \'0.0.1-SNAPSHOT\'\n\ndescription = """Strix Tools"""\n\nbuildscript {\n repositories {\n mavenCentral()\n maven {\n url "https://plugins.gradle.org/m2/"\n }\n }\n dependencies {\n classpath "org.springframework.boot:spring-boot-gradle-plugin:2.1.1.RELEASE"\n classpath "gradle.plugin.com.palantir.gradle.docker:gradle-docker:0.20.1"\n }\n }\n\ngroup = \'strixtools\'\n\napply plugin: \'java\'\napply plugin: \'idea\'\napply plugin: \'org.springframework.boot\'\napply plugin: \'com.palantir.docker\'\n\nbootJar {\n baseName = \'gs-spring-boot-docker\'\n version = \'0.1.0\'\n}\n\nrepositories {\n mavenCentral()\n}\n\nsourceCompatibility = 1.8\ntargetCompatibility = 1.8\n\ndependencies {\n configurations.all {\n exclude module: "spring-boot-starter-logging"\n exclude module: "logback-classic"\n }\n compile (\'org.springframework.boot:spring-boot-starter:2.1.1.RELEASE\')\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-data-jpa\', version:\'2.1.1.RELEASE\'\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-web\', version:\'2.1.1.RELEASE\'\n compile group: \'org.springframework.boot\', name: \'spring-boot-devtools\', version:\'2.1.1.RELEASE\'\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-security\', version:\'2.1.1.RELEASE\'\n compile group: \'org.springframework.security.oauth.boot\', name: \'spring-security-oauth2-autoconfigure\', version: \'2.1.1.RELEASE\'\n compile group: \'org.apache.commons\', name: \'commons-lang3\', version:\'3.4\'\n compile group: \'io.jsonwebtoken\', name: \'jjwt\', version:\'0.9.0\'\n compile group: \'com.fasterxml.jackson.datatype\', name: \'jackson-datatype-jsr310\', version:\'2.6.5\'\n compile group: \'org.liquibase\', name: \'liquibase-core\'\n compile group: \'com.h2database\', name: \'h2\', version:\'1.4.196\'\n runtime group: \'org.postgresql\', name: \'postgresql\'\n testCompile(group: \'org.springframework.boot\', name: \'spring-boot-starter-test\', version:\'2.1.1.RELEASE\')\n\n compile group: \'org.springframework.boot\', name: \'spring-boot-starter-log4j2\', version:\'2.1.1.RELEASE\'\n\n}\n\ntask stage {\n dependsOn build\n}\n\ntask unpack(type: Copy) {\n dependsOn bootJar\n from(zipTree(tasks.bootJar.outputs.files.singleFile))\n into("build/dependency")\n}\ndocker {\n name "${project.group}/${bootJar.baseName}"\n copySpec.from(tasks.unpack.outputs).into("dependency")\n buildArgs([\'DEPENDENCY\': "dependency"])\n}\nRun Code Online (Sandbox Code Playgroud)\n\n应用程序.yml
\n\nstrix-api:\n host: https://aaa.com\n client: asdasdasfasdf\n secret: afadsfsdaf\n user: afdadsfsadf\n pass: afadsfsdafsdaf\n\n--- \nRun Code Online (Sandbox Code Playgroud)\n\nspring:\n 配置文件: 本地
\n\n datasource:\n url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE\n username: sa\n password:\n\n liquibase:\n change-log: classpath:db/changelog-master.xml\n enabled: true\n drop-first: true\n\n jpa:\n hibernate:\n ddl-auto: none\n show-sql: true\n h2:\n console:\n enabled: true\nRun Code Online (Sandbox Code Playgroud)\n\n和我的 SpringAplication 类
\n\n@SpringBootApplication\npublic class StrixToolsApplication {\n\n public static void main(String[] args) {\n SpringApplication.run(StrixToolsApplication.class, args);\n }\n\n //TODO: we should move this to another side\n @Bean(name = "messageSource")\n public ReloadableResourceBundleMessageSource messageSource() {\n ReloadableResourceBundleMessageSource messageBundle = new ReloadableResourceBundleMessageSource();\n messageBundle.setBasename("classpath:messages/messages");\n messageBundle.setDefaultEncoding("UTF-8");\n return messageBundle;\n }\n\n\n @Bean\n public BCryptPasswordEncoder bCryptPasswordEncoder() {\n return new BCryptPasswordEncoder();\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n问题是 liquibase 永远不会执行。如果我将变更日志名称更改为其他名称,它甚至不会抛出错误。
\n\n感谢您的帮助\n问候
\n就我而言,问题是我为 gradle 插件声明了一个依赖项,如下所示
liquibaseRuntime("org.liquibase:liquibase-core:3.8.1")
Run Code Online (Sandbox Code Playgroud)
但不适用于运行时的 liquibase,就像这样
runtimeOnly("org.liquibase:liquibase-core:3.8.1")
Run Code Online (Sandbox Code Playgroud)
Tor*_*ori -1
也许您缺少正确版本的 liquibase。尝试使用 2.0.1。这里有一个小样本:(您可以重构用于版本和组的表示法)。
apply plugin: 'liquibase'
plugins {
id 'io.spring.dependency-management' version '1.0.5.RELEASE'
id 'org.liquibase.gradle' version '2.0.1'
}
ependencies {
implementation('org.springframework.boot:spring-boot-starter-actuator')
implementation('org.springframework.boot:spring-boot-starter-web')
implementation('org.springframework.boot:spring-boot-starter-security')
implementation('org.springframework.boot:spring-boot-starter-data-jpa')
implementation('org.springframework.boot:spring-boot-starter-validation')
implementation('org.liquibase:liquibase-core')
runtime 'mysql:mysql-connector-java'
liquibaseRuntime group: 'org.liquibase', name: 'liquibase-core', version: liquibaseCoreVersion
liquibaseRuntime group: 'org.liquibase', name: 'liquibase-groovy-dsl', version: liquibaseGroovyDslVersion
liquibaseRuntime 'mysql:mysql-connector-java'
}
liquibase {
activities {
main {
changeLogFile 'src/main/resources/db/liquibase-changelog.xml'
url 'jdbc:mysql://' + System.env.DATABASE_HOST + ':' + System.env.DATABASE_PORT + '/' + System.env.DATABASE_NAME + '?useSSL=false'
username System.env.DATABASE_USER
password System.env.DATABASE_PASSWORD
driver 'com.mysql.jdbc.Driver'
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13660 次 |
| 最近记录: |