2011-04-20 87 views
2

如何将Flyway命令链接成使用Maven的单个命令?链接Maven Flyway命令

例如,我想运行mvn initialize flyway:clean,然后再运行mvn initialize compile flyway:migrate。但是,mvn initialize flyway:clean compile flyway:migrate失败。

谢谢!

回答

6

我只是检查

mvn initialize flyway:clean compile flyway:migrate 

既Maven的2.2.1和Maven 3.0.3和它的作品每一次。

你可以仔细检查一下吗?如果您认为自己确实发现了问题,请在Issue Tracker中提出问题并采取必要的步骤重现该问题,我将尽最大努力解决问题。

0

如果我理解正确的文档,你需要配置Maven的飞行用插件做的工作,并将其绑定到行家的正确阶段比你可以使用默认的Maven调用像MVN清洁套装或MVN清洁验证。

+0

以下。 – 2011-04-20 19:27:34

0

您可以使用profiles将“命令”捆绑在一起。一旦完成,你只要致电:

mvn -Pmy-profile 
3

这会给你的能力,以连锁Maven的步骤,只需添加这是没有必要的,你想要的目标在那里

<profile> 
     <id>clean-migrate</id> 
     <build> 
      <plugins> 
       <plugin> 
        <artifactId>maven-resources-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>process-resources1</id> 
          <goals> 
           <goal>resources</goal> 
          </goals> 
          <!-- Populate the database before querydsl-sql runs --> 
          <phase>generate-sources</phase> 
         </execution> 
        </executions> 
       </plugin> 
       <plugin> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>com.googlecode.flyway</groupId> 
        <artifactId>flyway-maven-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>process-resources2</id> 
          <goals> 
           <goal>clean</goal> 
           <goal>migrate</goal> 
          </goals> 
          <phase>generate-sources</phase> 
         </execution> 
        </executions> 
        <version>1.4.2</version> 
        <configuration> 
         <driver>oracle.jdbc.driver.OracleDriver</driver> 
         <url>jdbc:oracle:thin:@${database-hostname}:${database-port}:${database-sid}</url> 
         <user>${database-username}</user> 
         <password>${database-password}</password> 
         <schemas>${database-schema}</schemas> 
         <table>schema_history</table> 
         <initialVersion>0.1.00</initialVersion> 
         <initialDescription>Base Migration</initialDescription> 
        </configuration> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 

您还需要在你的settings.xml

<profile> 
    <id>inject-flyway-properties</id> 
    <properties> 
     <database-hostname>${env.DB_HOSTNAME}</database-hostname> 
     <database-port>${env.DB_PORT}</database-port> 
     <database-username>${env.DB_USER}</database-username> 
     <database-password>${env.DB_PASSWORD}</database-password> 
     <database-sid>${env.DB_DEFAULT_SID}</database-sid> 
     <database-schema>${env.DB_SCHEMA}</database-schema> 
    </properties> 
</profile> 
+0

这会给你链接maven步骤的能力,只需添加你想要的目标。 – casibbald 2012-01-19 16:33:38