buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath "org.wildfly.swarm:wildfly-swarm-gradle-plugin:1.0.0.Alpha9-SNAPSHOT"
}
}
apply plugin: 'wildfly-swarm'
Gradle Plugin
To assist in building WildFly Swarm projects, a Gradle plugin is available. This plugin creates the -swarm.jar
uberjar which contains your application along with the necessary parts of WildFly to support it.
|
Gradle doesn’t get the same attention by the core developers as Maven. If you want to be on the safe side, use Maven. If you are interested in contributing to the Gradle build system, please let us know! |
Packaging your application
To use the plugin, you must add it to your build.gradle
:
To produce the myapp-swarm.jar
, simply perform a gradle wildfly-swarm-package
command after adding the plugin.
Using the WildFly Swarm BOM
WildFly Swarm provides a BOM that specifies the versions for all of the provided fractions. To import it into your gradle build, you’ll need to use the dependency-management-plugin:
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:1.0.3.RELEASE"
classpath "org.wildfly.swarm:wildfly-swarm-gradle-plugin:2017.11.0-SNAPSHOT"
}
}
apply plugin: "io.spring.dependency-management"
apply plugin: 'wildfly-swarm'
apply plugin: 'java'
repositories {
mavenLocal()
mavenCentral()
}
dependencyManagement {
imports {
mavenBom "org.wildfly.swarm:bom:2017.11.0-SNAPSHOT"
}
}
dependencies {
compile "org.wildfly.swarm:jaxrs"
}
Configuration
You can optionally provide configuration to the plugin.
Configuration Options
The plugin accepts the following options:
Name | Description | Default |
---|---|---|
bundleDependencies |
If true, dependencies will be included in the -swarm.jar. Otherwise, they will be resolved from |
true |
mainClassName |
A class to execute as the main. If not set, the plugin will check for |
org.wildfly.swarm.bootstrap.Main |
modules |
Paths to a directory containing additional module definitions |
./modules |
properties |
(see properties section below) |
|
propertiesFile |
(see properties section below) |
|
archiveTask |
A Jar-Task which should be wrapped instead of the JAR-Task (Java-Plugin) or WAR-Task (WAR-Plugin) |
Properties
Many properties may be used to configure execution and affect the packaging or running of your application.
If you set a properties
map or the propertiesFile
field in the swarm
block in your build script, the properties will be added to your myapp-swarm.jar
to affect subsequent executions of the uberjar. Any properties loaded from propertiesFile
will override same-named properties from properties
.
Any properties added to the uberjar can of course be overridden at runtime using the traditional -Dname=value
mechanism of java
.
Only properties specified outside of properties
or propertiesFile
that start with jboss.
, wildfly.
, or swarm.
, or override a property specified in properties
or propertiesFile
are added to the uberjar at package time.
Please see Configuration Properties for a non-exhaustive list of useful properties.
Example
swarm {
properties {
swarm.http.port = 8181
my.app.property = 'biscuits'
}
bundleDependencies = false
moduleDirs = [new File(buildDir, 'resources/main/modules')]
propertiesFile = new File(buildDir, "resources/main/some.properties")
}