2016-11-21 9 views
1

プロジェクトはspring-boot:runで期待どおりに実行されます。ただし、実行可能なJARはdb/changelog.xmlが見つからないため実行できません。実行可能なJARがLiquibase db/changelog.xmlを見つけることができません

次の手順は、問題を再現するために使用することができます。

  • 実行mvn package
  • プロジェクトのルートから実行 java -jar executable-jar-with-liquibase-1.0.0-SNAPSHOT.jar

ログは現在表示されますtargetフォルダ

  • に行きますテーブルdomainが作成されていないため、エラーです。

    application.ymlが見つかりました。liquibase.enabledがfalseに設定されていると、完全に実行することを拒否するためです。

    application.yml

    server: 
        context-path: /api 
    spring: 
        datasource: 
        platform: h2 
        url: jdbc:h2:mem:testdb;MODE=PostgreSQL;DB_CLOSE_ON_EXIT=FALSE 
        jackson: 
        date-format: yyyy-MM-dd 
        jpa: 
        database-platform: org.hibernate.dialect.PostgreSQLDialect 
        hibernate: 
         ddl-auto: none 
    liquibase: 
        enabled: false 
        change-log: classpath:db/changelog.xml 
    

    生成されたJARは、以下の内容があります。

    . 
    |____BOOT-INF 
    | |____classes 
    | | |____application.yml 
    | | |____db 
    | | | |____changelog.xml 
    | | | |____changelogs 
    | | | | |____changelog_000.xml 
    | | |____nl 
    | | | |_____42 
    | | | | |____app 
    | | | | | |____ApplicationConfig.class 
    | | | | | |____domain 
    | | | | | | |____Domain.class 
    | | | | | | |____DomainController.class 
    | | | | | | |____DomainRepository.class 
    | | | | | | |____DomainService.class 
    | | | | | |____shared 
    | | | | | | |____AbstractEntity.class 
    | | | | | |____WebAppConfig.class 
    | | | | | |____WebApplication.class 
    | |____lib 
    | | |____accessors-smart-1.1.jar 
    | | |____antlr-2.7.7.jar 
    | | |____asm-5.0.3.jar 
    | | |____aspectjweaver-1.8.9.jar 
    | | |____assertj-core-2.5.0.jar 
    | | |____classmate-1.3.1.jar 
    | | |____dom4j-1.6.1.jar 
    | | |____h2-1.4.192.jar 
    | | |____hamcrest-core-1.3.jar 
    | | |____hamcrest-library-1.3.jar 
    | | |____hibernate-commons-annotations-5.0.1.Final.jar 
    | | |____hibernate-core-5.0.11.Final.jar 
    | | |____hibernate-entitymanager-5.0.11.Final.jar 
    | | |____hibernate-jpa-2.1-api-1.0.0.Final.jar 
    | | |____hibernate-validator-5.2.4.Final.jar 
    | | |____jackson-annotations-2.8.3.jar 
    | | |____jackson-core-2.8.3.jar 
    | | |____jackson-databind-2.8.3.jar 
    | | |____jackson-datatype-jsr310-2.8.3.jar 
    | | |____jandex-2.0.0.Final.jar 
    | | |____javassist-3.20.0-GA.jar 
    | | |____javax.transaction-api-1.2.jar 
    | | |____jboss-logging-3.3.0.Final.jar 
    | | |____jcl-over-slf4j-1.7.21.jar 
    | | |____json-20140107.jar 
    | | |____json-path-2.2.0.jar 
    | | |____json-smart-2.2.1.jar 
    | | |____jsonassert-1.3.0.jar 
    | | |____jul-to-slf4j-1.7.21.jar 
    | | |____liquibase-core-3.5.1.jar 
    | | |____log4j-over-slf4j-1.7.21.jar 
    | | |____logback-classic-1.1.7.jar 
    | | |____logback-core-1.1.7.jar 
    | | |____mockito-core-1.10.19.jar 
    | | |____objenesis-2.1.jar 
    | | |____slf4j-api-1.7.21.jar 
    | | |____snakeyaml-1.17.jar 
    | | |____spring-aop-4.3.3.RELEASE.jar 
    | | |____spring-aspects-4.3.3.RELEASE.jar 
    | | |____spring-beans-4.3.3.RELEASE.jar 
    | | |____spring-boot-1.4.1.RELEASE.jar 
    | | |____spring-boot-autoconfigure-1.4.1.RELEASE.jar 
    | | |____spring-boot-configuration-processor-1.4.1.RELEASE.jar 
    | | |____spring-boot-devtools-1.4.1.RELEASE.jar 
    | | |____spring-boot-starter-1.4.1.RELEASE.jar 
    | | |____spring-boot-starter-aop-1.4.1.RELEASE.jar 
    | | |____spring-boot-starter-data-jpa-1.4.1.RELEASE.jar 
    | | |____spring-boot-starter-jdbc-1.4.1.RELEASE.jar 
    | | |____spring-boot-starter-logging-1.4.1.RELEASE.jar 
    | | |____spring-boot-starter-test-1.4.1.RELEASE.jar 
    | | |____spring-boot-starter-tomcat-1.4.1.RELEASE.jar 
    | | |____spring-boot-starter-web-1.4.1.RELEASE.jar 
    | | |____spring-boot-test-1.4.1.RELEASE.jar 
    | | |____spring-boot-test-autoconfigure-1.4.1.RELEASE.jar 
    | | |____spring-context-4.3.3.RELEASE.jar 
    | | |____spring-core-4.3.3.RELEASE.jar 
    | | |____spring-data-commons-1.12.3.RELEASE.jar 
    | | |____spring-data-jpa-1.10.3.RELEASE.jar 
    | | |____spring-expression-4.3.3.RELEASE.jar 
    | | |____spring-jdbc-4.3.3.RELEASE.jar 
    | | |____spring-orm-4.3.3.RELEASE.jar 
    | | |____spring-tx-4.3.3.RELEASE.jar 
    | | |____spring-web-4.3.3.RELEASE.jar 
    | | |____spring-webmvc-4.3.3.RELEASE.jar 
    | | |____tomcat-embed-core-8.5.5.jar 
    | | |____tomcat-embed-el-8.5.5.jar 
    | | |____tomcat-embed-websocket-8.5.5.jar 
    | | |____tomcat-jdbc-8.5.5.jar 
    | | |____tomcat-juli-8.5.5.jar 
    | | |____validation-api-1.1.0.Final.jar 
    | | |____xml-apis-1.4.01.jar 
    |____META-INF 
    | |____MANIFEST.MF 
    | |____maven 
    | | |____nl.mad 
    | | | |____executable-jar-with-liquibase 
    | | | | |____pom.properties 
    | | | | |____pom.xml 
    |____org 
    | |____springframework 
    | | |____boot 
    | | | |____loader 
    | | | | |____archive 
    | | | | | |____Archive$Entry.class 
    | | | | | |____Archive$EntryFilter.class 
    | | | | | |____Archive.class 
    | | | | | |____ExplodedArchive$1.class 
    | | | | | |____ExplodedArchive$FileEntry.class 
    | | | | | |____ExplodedArchive$FileEntryIterator$EntryComparator.class 
    | | | | | |____ExplodedArchive$FileEntryIterator.class 
    | | | | | |____ExplodedArchive.class 
    | | | | | |____JarFileArchive$EntryIterator.class 
    | | | | | |____JarFileArchive$JarFileEntry.class 
    | | | | | |____JarFileArchive.class 
    | | | | |____data 
    | | | | | |____ByteArrayRandomAccessData.class 
    | | | | | |____RandomAccessData$ResourceAccess.class 
    | | | | | |____RandomAccessData.class 
    | | | | | |____RandomAccessDataFile$DataInputStream.class 
    | | | | | |____RandomAccessDataFile$FilePool.class 
    | | | | | |____RandomAccessDataFile.class 
    | | | | |____ExecutableArchiveLauncher$1.class 
    | | | | |____ExecutableArchiveLauncher.class 
    | | | | |____jar 
    | | | | | |____AsciiBytes.class 
    | | | | | |____Bytes.class 
    | | | | | |____CentralDirectoryEndRecord.class 
    | | | | | |____CentralDirectoryFileHeader.class 
    | | | | | |____CentralDirectoryParser.class 
    | | | | | |____CentralDirectoryVisitor.class 
    | | | | | |____FileHeader.class 
    | | | | | |____Handler.class 
    | | | | | |____JarEntry.class 
    | | | | | |____JarEntryFilter.class 
    | | | | | |____JarFile$1.class 
    | | | | | |____JarFile$2.class 
    | | | | | |____JarFile$3.class 
    | | | | | |____JarFile$JarFileType.class 
    | | | | | |____JarFile.class 
    | | | | | |____JarFileEntries$1.class 
    | | | | | |____JarFileEntries$EntryIterator.class 
    | | | | | |____JarFileEntries.class 
    | | | | | |____JarURLConnection$1.class 
    | | | | | |____JarURLConnection$JarEntryName.class 
    | | | | | |____JarURLConnection.class 
    | | | | | |____ZipInflaterInputStream.class 
    | | | | |____JarLauncher.class 
    | | | | |____LaunchedURLClassLoader$1.class 
    | | | | |____LaunchedURLClassLoader.class 
    | | | | |____Launcher.class 
    | | | | |____MainMethodRunner.class 
    | | | | |____PropertiesLauncher$1.class 
    | | | | |____PropertiesLauncher$ArchiveEntryFilter.class 
    | | | | |____PropertiesLauncher$FilteredArchive$1.class 
    | | | | |____PropertiesLauncher$FilteredArchive.class 
    | | | | |____PropertiesLauncher$PrefixMatchingArchiveFilter.class 
    | | | | |____PropertiesLauncher.class 
    | | | | |____util 
    | | | | | |____SystemPropertyUtils.class 
    | | | | |____WarLauncher.class 
    

    プロジェクト全体がここで見つけることができます:https://github.com/robert-bor/executable-jar-with-liquibase

    は、私はここで間違って何をしているのですか?

  • 答えて

    6

    存在はLiquiBaseを、see this issueINCLUDEALLタグに問題がある使用します。一方で修正する必要がありますが、現時点ではincludeAllタグで実行することができませんでした。問題の使用のためのソリューションとして

    :魔法のように

    <include file="classpath:db/changelogs/changelog_000.xml" relativeToChangelogFile="false"/> 
    
    +0

    作品は、あなたに非常に多くの先生に感謝します! –

    +0

    私も3.5.2リリースで試しましたが、あなたが言うように、動作するようには見えません。 Liquibase JIRAの問題にコメントする –

    +0

    Liquibase JIRAに問題が記録されました:https://liquibase.jira.com/browse/CORE-2948 –

    関連する問題