build automation - Is recursive publishing possible / easy in Gradle? -
we have ant , ivy-based build management system, consists of shared ant file , set of conventions around directory structure.
one hurdle i'm trying overcome common case of "recursive publish". say, have 5 in-house code modules have dependency graph this:
- each module should publish ivy artifacts our internal repo
- artifacts not yet cleared deployment test should have status "integration"
- artifacts deployable test should have status "milestone" (manually promoted developer)
- artifacts verified testers should have status "release"
say developer has 5 modules checked out locally, , has made changes them all. wants promote changes "milestone" status. in other words should happen in ivy repo is:
- e-1.0-rc1 gets published
- d-1.1-rc2 gets published, referencing e-1.0-rc1 dependency
- c-2.0-rc1 gets published, referencing d-1.1-rc2 dependency
- b-3.3-rc1 gets published, referencing e-1.0-rc1 dependency
- finally, a-7.1-rc2 gets published, referencing c-2.0-rc1 , b-3.3-rc1 dependencies.
i haven't found easy way using ivy + ant (ivy promises similar called recursive deliver, can't find working examples of it).
gradle sounds promising here since seems have support multi project builds. did skim through docs, didn't find case example. there easy way achieve gradle?
the way can conceive of working master build file propagates version numbers down individual build files each of modules. has unfortunate side effect of binding 5 modules unit need managed single entity may way achieve you're looking for.
Comments
Post a Comment