This post is based on the Gradle Cargo Plugin by bmuschko
Include the Plugin
You need to include the plugin in your build.gradle.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.bmuschko:gradle-cargo-plugin:2.2.3'
}
}
apply plugin: 'com.bmuschko.cargo'
buildscript block should be the first thing in the build.gradle file.
Include the Gradle Cargo plugin dependencies
Add the following in your gradledependencies block
dependencies {
def cargoVersion = '1.4.5'
cargo "org.codehaus.cargo:cargo-core-uberjar:$cargoVersion",
"org.codehaus.cargo:cargo-ant:$cargoVersion"
}
Define the Tomcat Container
To deploy The war files to Tomcat you need to create a dsl by name cargo and define the mandatory containerId.
ContainerId will define the version of tomcat you want to use. If your want to deploy to tomcat6 your containerId will tomcat6x.
Gradle task to deploy war file on Tomcat
Below is a sample gradle task that will deploy war file from given location to Tomcat.
task deployAppA(type: com.bmuschko.gradle.cargo.tasks.remote.CargoRedeployRemote) {
description = "Deploys WAR to Tomcat ." // description of task
hostname = '127.0.0.1' // ip of the tomcat
port = 8080 // port at which tomcat is running
username = "tomcat" // username of tomcat
password = "tomcat" // password of the tomcat
deployables = [
new com.bmuschko.gradle.cargo.convention.Deployable(file: file('/path/to/war/appA.war'), context: 'appA')]
}
The above will deploy your war file appA.war on Tomcat running on your local machine.
Your tomcat should have manager-script role to allow the plugin to deploy war on tomcat.
Adding Manage-Script role to Tomcat
To add the role to Tomcat, go to path-to-tomcat/conf folder and replace the contents of file with the following.
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager-script"/>
</tomcat-users>
The above will set a user tomcat with password tomcat and roles tomcat and manager-script.
Now restart your tomcat server and run the gradle task with the command
gradle -q deployAppA
This should deploy your war file to tomcat.
Comments
Post a Comment