2017-03-19 8 views
1

私はLiquibaseを初めて使ったので、Liquibaseに慣れ親しんだかなり簡単なプロジェクトをセットアップしました。残念なことに、私は非常にイライラする最初のステップで失敗するようです。LiquibaseでMavenビルドに失敗しました:cvc-elt.1要素の宣言が見つかりません

私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を持っている:とき

<?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> 

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は、このようになります私はmvnパッケージを実行すると、次のエラーが表示されます。

[email protected]:~/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 

プロジェクト構造は次のとおりです。私にとって、これはスキーマでの問題のように思えるが、私はダブルチェックして、問題を作ることができない Project structure

。おそらく私はここで非常に明白な何かを見逃しているでしょう。

+0

あなたの投稿されたchangelog.xmlのXMLファイルは、http:// www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsdに対して有効です。 XSD。検証に失敗したマシンから(1)XSDへのネットワーク接続をチェックしてください。(2)あなたが投稿したchangelog.xmlファイルが検証エラーを起こしているのと同じです。(3)あなたが投稿したchangelog.xmlファイル[included XML files](http://stackoverflow.com/questions/23540464/liquibase-command-line-cannot-find-the-declaration-of-element-changeset)の幅広いツリーの一部ではありません。 – kjhughes

+0

1)ブラウザでスキーマのリンクを正常に開くことができます。 2)chamgelog.xmlを再度確認しました。上記のファイルはプロジェクト内のファイルです。 3)私は1つのチェンジログ/チェンジセットファイルのみを持っています。これは上記のものです。 – Brausepaul

+0

詳細については、最初の投稿を編集しました。 – Brausepaul

答えて

4

同じバージョンのliquibase-coreとliquibase-mavenプラグインを使用してください。 など。 liquibase-maven-pluginのバージョンを<version>3.5.3</version>に設定します。

関連する問題