The SeedStack distribution is the preferred way of using SeedStack in your project:
- All components have their version managed globally. You just have to specify the distribution version but not the version of the components themselves.
- All components are tested together before the release.
- The distribution is released 3 times per year with a predictable schedule (April, July and November).
- The distribution is named after the
The most important part of the distribution is the dependency management which guarantees that all SeedStack components are at compatible and well-tested versions. To benefit from dependency management in your project, just add the following snippet in your project root POM:
<dependencyManagement> <dependencies> <dependency> <groupId>org.seedstack</groupId> <artifactId>seedstack-bom</artifactId> <version>17.4</version> <type>pom</type> <scope>import</scope> </dependency> <dependencies> <dependencyManagement>
With this import, all artifacts under
org.seedstack.* group identifiers have their version managed.
You can still override the version of a particular component by adding a specific dependency management AFTER the import:
<dependencyManagement> <dependencies> <!-- SeedStack BOM import here --> <dependency> <groupId>org.seedstack.seed</groupId> <artifactId>seed-rest-jersey2</artifactId> <version>__OVERRIDEN_VERSION__</version> </dependency> <dependencies> <dependencyManagement>
Composites are POM-type dependencies that can be added to your project modules. Each is a typical set of SeedStack components that are useful for a particular use case like REST microservice, batch job, business domain… To add a composite dependency to one of your modules, add the following dependency snippet:
<dependency> <groupId>org.seedstack</groupId> <artifactId>???-composite</artifactId> <type>pom</type> </dependency>
The available composites are:
batchcomposite is for batch jobs.
clicomposite is for command-line programs.
domaincomposite is for reusable domain modules.
restcomposite is for REST microservices.
webcomposite is for classic Web applications with a user interface.
It is recommended to only use one composite per project module. Note that you can add any additional dependency you may require (such as add-ons), besides the composite.
It is possible to create a custom distribution for your organization. This can be useful:
- To manage your own organization-specific add-ons and provide dependency management for them,
- To override the version of some of SeedStack components by a newer or older one.
Maven dependency management import is transitive so you can import the SeedStack open-source BOM in your own and only specify the differences after the import.