sbt - Dependent task runs only when main task called directly -
so, have sbt project, 2 custom tasks jooq:codegen , flyway:migrate [ https://github.com/sean8223/jooq-sbt-plugin, https://github.com/sean8223/flyway-sbt-plugin ]
not relevant here, flyway:migrate task creates schema in database, , jooq:codegen generates code schema. hence, imperative flyway:migrate runs before jooq:codegen. so, added following line in build.sbt
(codegen in jooq) <<= (codegen in jooq) dependson (migrate in flyway) also, compile needs generated code jooq:codegen, plugin takes care of default.
here weird part. when run sbt compile, get:
~/n/p/d/davion git:data-access ❯❯❯ sbt compile [info] loading project definition /users/rohan/nomadly/projects/davion-projects/davion/project [info] set current project davion (in build file:/users/rohan/nomadly/projects/davion-projects/davion/) [info] done updating. [info] initialising properties : /jooq-config4460313300896426081.xml ... output truncated ... [info] table records generated : total: 669.172ms, +44.536ms [info] routines fetched : 0 (0 included, 0 excluded) [info] packages fetched : 0 (0 included, 0 excluded) [info] generation finished! : total: 688.254ms, +19.082ms [info] compiling 7 scala sources , 17 java sources /users/rohan/nomadly/projects/davion-projects/davion/target/classes... [success] total time: 24 s, completed 14 may, 2015 12:13:35 pm so, flyway:migrate task doesn't run. when run sbt jooq:codegen, happens:
~/n/p/d/davion git:data-access ❯❯❯ sbt jooq:codegen [info] loading project definition /users/rohan/nomadly/projects/davion-projects/davion/project [info] set current project davion (in build file:/users/rohan/nomadly/projects/davion-projects/davion/) [info] flyway (command-line tool) v.2.0.3 [info] [info] current schema version: 6 [info] schema date. no migration necessary. [info] initialising properties : /jooq-config6431105742854017589.xml [info] license parameters ... output truncated ... i have no idea why happening. if task chain setup 'a' depends on 'b' depends on 'c', shouldn't running 'a' execute both 'c' , 'b' (and in order)? why 'c' not run transitive dependency , how can remedy this?
Comments
Post a Comment