2013-01-06 5 views
5

sql-mvn-pluginに関するいくつかのヘルプをお願いします。 documentationによれば、pom.xmlファイルにファイルの順序(orderFileタグ)がない場合、ファイルはリストされている順番どおりに実行されます。しかし、それは真実ではありません! orderFileタグを削除すると、ファイルはデフォルトでは昇順で実行されます。sql-mvn-pluginは、pom.xmlに記載されている順番でファイルを実行します。

私はこのプラグインを使用して、インストール時にデータベースを作成し、データをインポートしたかったのです。私は20以上のテーブル(スクリプト、テーブル、シーケンス、制約)が個別のファイルに分割されているため、意味のない名前のファイルは処理できません。それは地獄それ自体であり、このプラグインを使用することは価値がありません。一方、私は頭の中でmavenが私のアプリケーションとスクリプトの地獄を避けるためのツールをビルド、テスト、デプロイするためのツールであるため、このステップを外に持ちたくはありません。

実行順序は定義されていませんが、実行中にこの手順にもかかわらず*ファイル/プロシージャ/ test_activate_all_partners.sql *が最初に実行されますが、これはファイル順序の最後から2番目です!私の理解では、最初に実行されるファイルは* tables/datapoint_component_types/table.sql *でなければなりません。

私のpom.xml:

   <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>sql-maven-plugin</artifactId> 
       <version>1.5</version> 
       <dependencies> 
        <dependency> 
         <groupId>postgresql</groupId> 
         <artifactId>postgresql</artifactId> 
         <version>9.1-901.jdbc4</version> 
        </dependency>    
       </dependencies> 
       <configuration> 
        <driver>org.postgresql.Driver</driver> 
        <url>jdbc:postgresql://localhost:5432/database</url> 
        <username>postgres</username> 
        <password>postgres</password> 
       </configuration> 
       <executions> 
        <execution> 
         <id>default-cli</id> 
         <goals> 
          <goal>execute</goal> 
         </goals> 
         <configuration> 
          <delimiter>/</delimiter> 
          <delimiterType>normal</delimiterType> 
          <autocommit>true</autocommit> 
          <fileset> 
           <!-- at home --> 
           <basedir>d:/PRIVAT/Projects/java/bigProject/</basedir> 
           <includes> 
            <!-- tables --> 
            <include>tables/datapoint_component_types/table.sql</include> 
            <include>tables/datapoint_datapoint_components/table.sql</include> 
            <include>tables/datapoint_java_result_types/table.sql</include> 
            <include>tables/datapoint_postgres_result_types/table.sql</include> 
            <include>tables/datapoint_result_types/table.sql</include> 
            <include>tables/datapoints/table.sql</include> 
            <include>tables/datatype_descs/table.sql</include> 
            <include>tables/datatypes/table.sql</include> 
            <include>tables/disabled_period/table.sql</include> 
            <include>tables/file_extensions/table.sql</include> 
            <include>tables/logs/table.sql</include> 
            <include>tables/partner_datatypes/table.sql</include> 
            <include>tables/partner_processes/table.sql</include> 
            <include>tables/partner_protocols/table.sql</include> 
            <include>tables/partner_protocols_attributes_details/table.sql</include> 
            <include>tables/partners/table.sql</include> 
            <include>tables/process_step/table.sql</include> 
            <include>tables/process_step_actions/table.sql</include> 
            <include>tables/process_steps_param/table.sql</include> 
            <include>tables/process_steps_partner_processes/table.sql</include> 
            <include>tables/processes/table.sql</include> 
            <include>tables/protocol_attributes/table.sql</include> 
            <include>tables/protocols/table.sql</include> 
            <include>tables/result_tables/table.sql</include> 
            <include>tables/valid_period/table.sql</include> 
            <!-- constrains --> 
            <include>tables/datapoint_component_types/sequences.sql</include> 
            <include>tables/datapoint_datapoint_components/sequences.sql</include> 
            <include>tables/datapoint_java_result_types/sequences.sql</include> 
            <include>tables/datapoint_postgres_result_types/sequences.sql</include> 
            <include>tables/datapoint_result_types/sequences.sql</include> 
            <include>tables/datapoints/sequences.sql</include> 
            <include>tables/datatype_descs/sequences.sql</include> 
            <include>tables/datatypes/sequences.sql</include> 
            <include>tables/disabled_period/sequences.sql</include> 
            <include>tables/file_extensions/sequences.sql</include> 
            <include>tables/logs/sequences.sql</include> 
            <include>tables/partner_datatypes/sequences.sql</include> 
            <include>tables/partner_processes/sequences.sql</include> 
            <include>tables/partner_protocols/sequences.sql</include> 
            <include>tables/partner_protocols_attributes_details/sequences.sql</include> 
            <include>tables/partners/sequences.sql</include> 
            <include>tables/process_step/sequences.sql</include> 
            <include>tables/process_step_actions/sequences.sql</include> 
            <include>tables/process_steps_param/sequences.sql</include> 
            <include>tables/process_steps_partner_processes/sequences.sql</include> 
            <include>tables/processes/sequences.sql</include> 
            <include>tables/protocol_attributes/sequences.sql</include> 
            <include>tables/protocols/sequences.sql</include> 
            <include>tables/result_tables/sequences.sql</include> 
            <include>tables/valid_period/sequences.sql</include> 
            <!-- sequences --> 
            <include>tables/datapoint_component_types/constraints.sql</include> 
            <include>tables/datapoint_datapoint_components/constraints.sql</include> 
            <include>tables/datapoint_java_result_types/constraints.sql</include> 
            <include>tables/datapoint_postgres_result_types/constraints.sql</include> 
            <include>tables/datapoint_result_types/constraints.sql</include> 
            <include>tables/datapoints/constraints.sql</include> 
            <include>tables/datatype_descs/constraints.sql</include> 
            <include>tables/datatypes/constraints.sql</include> 
            <include>tables/disabled_period/constraints.sql</include> 
            <include>tables/file_extensions/constraints.sql</include> 
            <include>tables/logs/constraints.sql</include> 
            <include>tables/partner_datatypes/constraints.sql</include> 
            <include>tables/partner_processes/constraints.sql</include> 
            <include>tables/partner_protocols/constraints.sql</include> 
            <include>tables/partner_protocols_attributes_details/constraints.sql</include> 
            <include>tables/partners/constraints.sql</include> 
            <include>tables/process_step/constraints.sql</include> 
            <include>tables/process_step_actions/constraints.sql</include> 
            <include>tables/process_steps_param/constraints.sql</include> 
            <include>tables/process_steps_partner_processes/constraints.sql</include> 
            <include>tables/processes/constraints.sql</include> 
            <include>tables/protocol_attributes/constraints.sql</include> 
            <include>tables/protocols/constraints.sql</include> 
            <include>tables/result_tables/constraints.sql</include> 
            <include>tables/valid_period/constraints.sql</include> 
            <!-- procedures --> 
            <include>procedures/test_activate_all_partners.sql</include> 
            <!-- testdata --> 
            <include>testdata/data.sql</include> 
           </includes> 
          </fileset> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 

出力:事前に任意の助け

d:/PRIVAT/Projects/java/bigProject>mvn sql:execute 
[INFO] Scanning for projects... 
... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building EJB 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- sql-maven-plugin:1.5:execute (default-cli) @ DiLibCoreEJB --- 
[INFO] Executing file: sql\procedures\test_activate_all_partners.sql 
[INFO] Executing file: sql\tables\datapoints\constraints.sql 
[ERROR] Failed to execute: 
ALTER TABLE 
datapoints 
ADD 
CONSTRAINT datapoints_pkey PRIMARY KEY (datapoint_id); 

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2.503s 
[INFO] Finished at: Sun Jan 06 17:49:40 CET 2013 
[INFO] Final Memory: 4M/77M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.codehaus.mojo:sql-maven-plugin:1.5:execute (default-cli) on project DiLibCoreEJB: ERROR: relation "datapoints" does not exist -> [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 
d:/PRIVAT/Projects/java/bigProject> 

ありがとう!

答えて

9

たぶん私は物事を誤解が、excerpt from the docsは言う:ロードするSQL文を含む

ファイル(複数可)。 ant-likeファイルパターンを使用する場合はファイルセットのみを使用し、それ以外の場合はsrcFilesを使用してください。あなたがsrcFiles代わりのincludesを使用しなければならないことを意味したディレクトリ(の順序は含まれません!)

を走査しながら、順序が一致発生に基づいています。

<configuration> 
    <srcFiles> 
    <srcFile>first.sql</srcFile> 
    <srcFile>second.sql</srcFile> 
    <srcFile>a.sql</srcFile> 
    .. 
    </srcFiles> 
    . 
</configuration> 

ところで:あなた構成の絶対パス:

d:/PRIVAT/Projects/java/bigProject/ 

は避けるべきである。このようなものを意味します。

+0

あなたはどちらの場合も正しいです! :) ご協力いただきありがとうございます! – SayusiAndo

関連する問題