Maven构建因Liquibase失败:找不到元素的cvc-elt.1声明 [英] Maven build failing with Liquibase: cvc-elt.1 declaration of element cannot be found

查看:124
本文介绍了Maven构建因Liquibase失败:找不到元素的cvc-elt.1声明的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对Liquibase完全陌生,我设置了一个相当简单的项目来熟悉Liquibase.令人不安的是,我似乎在一开始就失败了,这非常令人沮丧.

I'm completely new to Liquibase and I setup a rather simple project to become familiar with Liquibase. Unfortenately, I seem to fail at the very first steps which is very frustrating.

首先是我的changelog.xml:

First my changelog.xml:

<?xml version="1.0" encoding="UTF-8"?>

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd http://www.liquibase.org/xml/ns/dbchangelog-ext
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">

    <preConditions>
        <dbms type="mysql"/>
    </preConditions>

    <changeSet id="1" author="maik">
        <sql dbms="mysql" endDelimiter=";">
            CREATE SCHEMA ods
        </sql>
        <createTable tableName="department">
            <column name="id" type="int">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="name" type="varchar(50)">
                <constraints nullable="false"/>
            </column>
            <column name="active" type="boolean" defaultValueBoolean="true"/>
        </createTable>
    </changeSet>

</databaseChangeLog>

除此之外,我还有一个liquibase.properties:

Besides that, I have a liquibase.properties:

driver=com.mysql.jdbc.Driver
classpath=lib/mysql-connector-java-5.1.41-bin.jar
url=jdbc:mysql://localhost/prime
username=bla
password=bla

我的pom.xml看起来像这样:

My pom.xml looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>himstedt</groupId>
    <artifactId>liquibase</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.41</version>
        </dependency>
        <dependency>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-core</artifactId>
            <version>3.5.3</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.liquibase</groupId>
                <artifactId>liquibase-maven-plugin</artifactId>
                <version>3.0.5</version>
                <configuration>
                    <propertyFile>src/main/resources/org/liquibase/liquibase.properties</propertyFile>
                    <changeLogFile>src/main/resources/org/liquibase/changelog.xml</changeLogFile>
                </configuration>
                <executions>
                    <execution>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>update</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

当我运行mvn软件包时,出现以下错误:

When I run mvn package I get the following error:

user@desktop:~/IdeaProjects/liquibase$ mvn package
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building liquibase 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ liquibase ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 2 resources
[INFO] 
[INFO] --- liquibase-maven-plugin:3.0.5:update (default) @ liquibase ---
[INFO] ------------------------------------------------------------------------
[INFO] Parsing Liquibase Properties File
[INFO]   File: src/main/resources/org/liquibase/liquibase.properties
[INFO]   'classpath' in properties file is not being used by this task.
[INFO] ------------------------------------------------------------------------
Mon Mar 20 13:28:20 CET 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
[INFO] Executing on Database: jdbc:mysql://localhost/prime
INFO 20.03.17 13:28:liquibase: null: null: Successfully acquired change log lock
SEVERE 20.03.17 13:28:liquibase: null: null: cvc-elt.1: Deklaration des Elements 'databaseChangeLog' kann nicht gefunden werden.
INFO 20.03.17 13:28:liquibase: null: null: Successfully released change log lock
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.909 s
[INFO] Finished at: 2017-03-20T13:28:20+01:00
[INFO] Final Memory: 19M/472M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.0.5:update (default) on project liquibase: Error setting up or running Liquibase: Error parsing line 9 column 75 of src/main/resources/org/liquibase/changelog.xml: cvc-elt.1: Deklaration des Elements 'databaseChangeLog' kann nicht gefunden werden. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

项目结构为: 项目结构

对我来说,这似乎是架构的问题,但是我仔细检查了一下,但没有发现问题.很有可能我在这里遗漏了一些非常明显的东西.

For me this seems like a problem with the schema, but I double-checked and cannot make out a problem. Most probably I am missing something very obvious here.

推荐答案

请确保使用相同版本的liquibase-core和liquibase-maven插件. 例如.将liquibase-maven-plugin的版本设置为<version>3.5.3</version>

Make sure to use the same version of liquibase-core and liquibase-maven plugin. E.g. set version of liquibase-maven-plugin to <version>3.5.3</version>

这篇关于Maven构建因Liquibase失败:找不到元素的cvc-elt.1声明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆