New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[core] Support custom extensions #929
Labels
Milestone
Comments
Also consider an option for declaring GAV coordinates to download an extension and its transitive dependencies. |
aalmiray
added a commit
that referenced
this issue
Sep 14, 2022
aalmiray
added a commit
that referenced
this issue
Sep 14, 2022
aalmiray
added a commit
that referenced
this issue
Sep 14, 2022
aalmiray
added a commit
to jreleaser/jreleaser.github.io
that referenced
this issue
Sep 14, 2022
aalmiray
added a commit
that referenced
this issue
Oct 27, 2022
aalmiray
added a commit
that referenced
this issue
Oct 27, 2022
aalmiray
added a commit
that referenced
this issue
Oct 27, 2022
Released in v1.3.0 -> https://github.com/jreleaser/jreleaser/releases/tag/v1.3.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Define a mechanism to load, configure, and execute custom extensions.
Packaging
Extensions may be packaged in 3 ways:
Location
Extensions should be placed at
${JRELEASER_HOME}/extensions/<extension-name>/
. However, this location may be overridden by configuring an explicit value via the DSLDSL
Here's how it may look like
Extension
foo
will be loaded from${JRELEASER_HOME}/extensions/foo
. It may be packaged asfoo-x.y.z.jar
,foo.-x.y.z.zip
, or as a set of JAR files inside that directory.It lists an explicit type
com.github.foo.MustacheFunctionProvider
which requires additional settings upon initialization. These settings are defined using theproperties
map. There may be more than one provider type hence a list.Extension
bar
will be loaded from/path/to/the/jars
. It may be packaged asbar-x.y.z.jar
,bar.-x.y.z.zip
, or as a set of JAR files inside that directory.Loading Mechanism
Each extension will be loaded and initialized upon bootstrap after resolving the model. Extensions will be treated as singletons per each invocation session. JReleaser will use the
ServiceLoader
SPI interface to locate, load, and initialize extensions.The text was updated successfully, but these errors were encountered: