Flyway - 不复制sql资源

时间:2012-11-21 11:15:04

标签: java database maven data-migration flyway

我在java web项目中使用flyway。

我的迁移位于src / main / resources / db / migration

现在我想从目标war中排除sql资源,所以我添加到我的pom.xml:

<project>
    ...
    <build>
    ...
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                   <exclude>**/*.sql</exclude>
               </excludes>
            </resource>
        </resources>
    ...
    </build>
</project>

但是flyway不起作用,因为它抓住目标的迁移。

那么我怎么能使用flyway但是避免将sql复制到我的战争中?

2 个答案:

答案 0 :(得分:0)

您可以使用pom打包将迁移提取到单独的maven模块,并使您的应用依赖于此模块。您可以看到迁移模块here

的示例

答案 1 :(得分:0)

我的解决方案是将文件从复制中排除到目标战争,而不是将资源从复制到目标类。这是做到这一点的方法:

<project>
    ...
    <build>
        ...
        <plugins>
             <plugin>
                  <artifactId>maven-war-plugin</artifactId>
                  <version>2.2</version>
                  <configuration>
                      <warName>my</warName>
                      <packagingExcludes>**/*.sql</packagingExcludes>
                  </configuration>
             </plugin>
         ...
         </plugins>
        ...
     </build>
     ...
 </project>