sql mvn插件按照pom.xml中列出的确切顺序执行文件

sql mvn插件按照pom.xml中列出的确切顺序执行文件,sql,maven,execution,Sql,Maven,Execution,我想在这方面寻求一些帮助。根据,如果pom.xml文件没有关于文件顺序的任何信息-orderFile标记-则文件将按照列出的确切顺序执行。但事实并非如此!如果删除orderFile标记,则默认情况下将以升序方式执行文件 老实说,我想使用这个插件在安装过程中创建数据库和导入数据。由于我正在处理20多个表——脚本、表、序列和约束被分割成单独的文件——我无法处理没有有意义名称的文件。这将是地狱本身,使用这个插件将一文不值。另一方面,我不想让这一步脱离maven,因为在我看来,maven是构建、测试和部

我想在这方面寻求一些帮助。根据,如果pom.xml文件没有关于文件顺序的任何信息-orderFile标记-则文件将按照列出的确切顺序执行。但事实并非如此!如果删除orderFile标记,则默认情况下将以升序方式执行文件

老实说,我想使用这个插件在安装过程中创建数据库和导入数据。由于我正在处理20多个表——脚本、表、序列和约束被分割成单独的文件——我无法处理没有有意义名称的文件。这将是地狱本身,使用这个插件将一文不值。另一方面,我不想让这一步脱离maven,因为在我看来,maven是构建、测试和部署应用程序的工具,也是避免脚本地狱的工具

正如您在下面的示例中所看到的,没有定义执行顺序,尽管在执行过程中执行了第一个文件*procedures/test\u activate\u all\u partners.sql*,它是文件顺序的倒数第二个!据我所知,第一个执行的文件应该是*tables/datapoint\u component\u types/table.sql*

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

提前谢谢你的帮助

也许我误解了一件事,但安说:

包含要加载的SQL语句的文件。如果要使用类似ant的文件模式,请仅使用文件集,否则请使用
srcFiles
。扫描目录时,顺序基于匹配的事件(而不是包含的顺序!)

这意味着您应该使用
srcFiles
而不是
includes
。意思是这样的:

<configuration>
  <srcFiles>
    <srcFile>first.sql</srcFile>
    <srcFile>second.sql</srcFile>
    <srcFile>a.sql</srcFile>
    ..
  </srcFiles>
  .
</configuration>
应该避免

<configuration>
  <srcFiles>
    <srcFile>first.sql</srcFile>
    <srcFile>second.sql</srcFile>
    <srcFile>a.sql</srcFile>
    ..
  </srcFiles>
  .
</configuration>
d:/PRIVAT/Projects/java/bigProject/