1. A method for composing licenses for programming modules, the method comprising: storing, by a processor, information associated with one or more programming modules, including one or more license terms associated with the one or more programming modules; receiving, by the processor an input indicating a set of programming modules selected from the one or more programming modules, based on the information which is stored; comparing the one or more license terms associated with the set of programming modules; responsive to determining a conflict between the one or more license terms associated with the set of programming modules, applying by the processor, a set of rules to resolve the conflict between the one or more license terms; and composing by the processor, a composite license for the set of programming modules, based on the one or more license terms of the set of programming modules and the set of rules applied to resolve the conflict.