【问题标题】:Maven SQL-Plugin runs multiple times in multi-module projectMaven SQL-Plugin 在多模块项目中多次运行
【发布时间】:2014-09-12 18:55:39
【问题描述】:

我有一个多模块项目,如下图:

            Module
            |_________sub-module1
            |                   |___pom.xml          
            |_________sub-module2
            |                   |___pom.xml
            |_________sub-module3
            |                   |___pom.xml
            |_________sub-module4
            |                   |___pom.xml
            |_________pom.xml

我在子模块 2 中添加了一些用于创建和删除集成测试数据的 sql 脚本。在父 pom 中,我有以下代码来设置数据库以进行集成测试。

    <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>sql-maven-plugin</artifactId>
                    <dependencies>
                        <dependency>
                            <groupId>net.sourceforge.jtds</groupId>
                            <artifactId>jtds</artifactId>
                            <version>1.3.1</version>
                        </dependency>
                    </dependencies>

                    <configuration>
                        <driver>net.sourceforge.jtds.jdbc.Driver</driver>
                        <url>jdbc:jtds:sqlserver:blah</url>
                        <settingsKey>sqlsrv-integration-test-creds</settingsKey>
                        <skip>false</skip>
                    </configuration>

                    <executions>

                        <execution>
                            <id>create-integration-test-data</id>
                            <phase>process-test-resources</phase>
                            <goals>
                                <goal>execute</goal>
                            </goals>
                            <configuration>
                                <orderFile>ascending</orderFile>
                                <fileset>
                                    <basedir>${basedir}/src/test/resources</basedir>
                                    <includes>
                                        <include>create-integration-test-data.sql</include>
                                    </includes>
                                </fileset>
                            </configuration>
                        </execution>
                        <execution>
                            <id>drop-db-after-test</id>
                            <phase>post-integration-test</phase>
                            <goals>
                                <goal>execute</goal>
                            </goals>
                            <configuration>
                                <fileset>
                                    <basedir>${basedir}/src/test/resources</basedir>
                                    <includes>
                                        <include>drop-integration-test-data.sql</include>
                                    </includes>
                                </fileset>
                            </configuration>
                        </execution>

                    </executions>

</plugin>

现在,当我运行 mvn clean install 时,我收到错误消息,即 sub-module1 中不存在该文件。所以我尝试将脚本添加到 sub-module1。现在,它在 sub-module1sub-module2sub-module3 中执行,由于脚本是子模块3中没有。

如何让脚本只执行一次?

【问题讨论】:

  • 将 sql-maven-plugin 添加到您需要它的确切位置(子模块 2)而不是父级中,因为它将被继承,当然会在每个子级中执行。跨度>

标签: java maven


【解决方案1】:

在 cmets 中回答:

在你需要的地方添加 sql-maven-plugin (sub-module-2) 和 不在父母身上,因为它会被继承,当然会 在每个孩子身上执行。 – khmarbaise 2014 年 7 月 22 日在 9:25

【讨论】:

    猜你喜欢
    • 2014-06-02
    • 1970-01-01
    • 2019-02-13
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多