如何为Spring Boot和Hibernate配置Liquibase Maven插件

3

我的应用程序栈非常典型:spring-boot:1.5.Xhibernate:5.Xmavenliquibase

使用spring boot非常简单地进行配置liquibase,而不需要为liquibase添加一些配置文件。

但是我想通过hibernate entities创建liquibase changesets。我认为我可以使用liquibase-maven-pluginliquibase-hibernate来完成它。此外,我还阅读了关于集成spring boot和liquibase的文章this article about integration spring boot and liquibase,但那里需要额外的liquibase.properties

我的问题是:如果可能的话,如何在不添加任何配置文件的情况下配置maven-liqubase插件。

1个回答

1
我的配置是:
         <plugin>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-maven-plugin</artifactId>
            <version>${liquibase.version}</version>
            <configuration>
                <changeLogFile>src/main/resources/config/liquibase/master.xml</changeLogFile>
                <diffChangeLogFile>src/main/resources/config/liquibase/changelog/${maven.build.timestamp}_changelog.xml</diffChangeLogFile>
                <driver>org.mariadb.jdbc.Driver</driver>
                <url>jdbc:mariadb://localhost:3306/example</url>
                <defaultSchemaName>example</defaultSchemaName>
                <username>root</username>
                <password>root</password>
                <referenceUrl>hibernate:spring:com.example.domain?dialect=org.hibernate.dialect.MySQL5Dialect&amp;hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&amp;hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy</referenceUrl>
                <!-- <verbose>true</verbose> -->
                <!-- <logging>debug</logging> -->
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.liquibase.ext</groupId>
                    <artifactId>liquibase-hibernate5</artifactId>
                    <version>${liquibase-hibernate5.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.hibernate</groupId>
                    <artifactId>hibernate-validator</artifactId>
                    <version>${hibernate-validator.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-jpa</artifactId>
                    <version>${project.parent.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                    <version>4.3.21.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                    <version>4.3.21.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>4.3.21.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework.data</groupId>
                    <artifactId>spring-data-jpa</artifactId>
                    <version>1.11.17.RELEASE</version>
                </dependency>
            </dependencies>
        </plugin>

对于任何mvn liquibase:命令都可以,但对于我来说,mvn liquibase:diff返回一个错误:[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.6.2:diff (default-cli) on project example: Error setting up or running Liquibase: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory: The application must supply JDBC connections


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接