Here is an explanation of each module and their relationship:
* addon: The addon project. This module should depend on api (and spi if available) in
compile time and impl in runtime. The artifact produced by this project should be a JAR
with the classifier forge-addon
* api: any artifact that is supposed to be exposed by your addon.
* impl: this is where the implementation of your API lies and they should never be
* spi (when feasible): Use a SPI when you want other addons to provide extensions for your
* tests: This is where the integration tests are kept.
Posted by forums
Original post: https://developer.jboss.org/message/920161#920161